主持人注意:鉴于此问题已经发布了67个答案(其中一些已删除),请考虑在发布另一个问题之前是否提供任何新内容.
git pull和之间有什么区别git fetch?
我有一位同事声称这git pull是有害的,并且每当有人使用它时都会感到不安.
该git pull命令似乎是更新本地存储库的规范方法.使用git pull创建问题?它创造了什么问题?有更好的方法来更新git存储库吗?
--preserve-merges
Instead of ignoring merges, try to recreate them.
This uses the --interactive machinery internally, but combining it
with the --interactive option explicitly is generally not a good idea
unless you know what you are doing (see BUGS below).
Run Code Online (Sandbox Code Playgroud)
那么当你使用时会发生什么--preserve-merges?它与默认行为(没有该标志)有何不同?"重新创建"合并等意味着什么?
我有本地master和develop分支机构.我完成所有工作develop,然后将它们合并到master发行版中.有一个远程分支,upstream/master它有我想要的更改,但我想在develop其更改之上重新定义我的更改(它共享一个共同的祖先)并将它们重新放入develop.我已经完成了git fetch upstream.
关于变基的Git书籍章节说:
$ git checkout experiment
$ git rebase master
Run Code Online (Sandbox Code Playgroud)
我(假设)在我的情况下意味着:
$ git checkout upstream/master
$ git rebase develop
Run Code Online (Sandbox Code Playgroud)
但后来我会upsteam/master处于独立的头状态.但是,如果我合并了upstream/master,我就会这样做develop,并且会有变化develop,例如
$ git checkout develop
$ git merge upstream/master
Run Code Online (Sandbox Code Playgroud)
所以这种反叛的方式对我来说似乎很落后.我想develop在develop分支上重新定义我的更改,其变化upstream/master类似于合并的工作方式.我是否应该进行rebase upstream/master,修复任何冲突,然后添加它,将其存放并弹出develop?
希望这是有道理的,有人可以帮助我,我将非常感激.