我是否必须“拉”将最新的内容合并到我的本地分支中?

时间:2015-09-22 00:04:25

标签: git

原谅我对git的浅薄理解,但我经常看到这种模式,我想知道是否有必要。我看到有人这样做(在my-dev-branch工作,从master分支):

git checkout master
git pull
git checkout my-dev-branch
git merge master

你可以通过以下方式实现同​​样的目标:

git fetch
git merge master

甚至:

git merge origin/master

1 个答案:

答案 0 :(得分:1)

有两个概念在起作用,还有两种类型的合并正在发生。第一种类型的合并是在执行前两个命令时发生的合并:

git checkout master
git pull

假设您已将pull策略设置为合并(而不是rebase),则git pull分支上的master将首先fetch来自远程{{​​1}}的所有更改然后将它们合并到这个分支的本地副本中。

发生的第二次合并是当您执行以下两个命令时:

master

这会切换到git checkout my-dev-branch git merge master ,然后本地my-dev-branch分支合并到其中。

现在,事情变得有趣了。假设你这样做:

master

事实证明这与你原​​来做的事情是一样的:

git checkout master
git fetch
git merge origin/master

运行git checkout master git pull 将更新跟踪遥控器的特殊本地分支。在git fetch的情况下,我希望将此分支称为master。因此,通过将此远程跟踪分支合并到您的本地origin/master,您实际上正在执行与合并远程相同的操作。