假设在我的git repo上有两个分支:
在我的本地仓库中,我目前在Master上,我想合并Test的更新版本。
我要做的是:
git checkout Test
git pull
git checkout Master
git merge Test
(第二行可能没用。)
据我了解,此行:
git pull origin Test
(在第一个版本中,这是“ git pull origin / Test”,这要感谢@Tim来解决)
应应将我的Master分支设置为类似状态(即,它将包括来自Test的更改)。 我知道 pull 等于 fetch + merge ,所以我现在有点困惑。
问题是:以上两种方法之间有什么区别?
答案 0 :(得分:2)
从Master
分支运行以下命令:
git pull origin Test
避免仅为了拉就将分支更改为Test
。等效于此:
git fetch origin Test && git merge origin/Test
但是更重要的是,只有通过快速前进才能完成合并,Git才会进行合并。如果不可能 ,则必须进行显式合并。
我可以提供以下工作流程来代替git pull origin Test
:
# from Master
git fetch origin
git merge origin/Test
以上两条代码使用来自远程服务器的最新更改来更新本地跟踪分支origin/Test
。然后,它将Test
直接合并到您的Master
分支中。注意,我们不必从Master
切换分支;无需执行git checkout
,就可以进行整个合并。而且,即使该合并会导致冲突,Git也会始终采用这种方法进行合并。