我正在读这个post,如果我弄错了,还有一些我不知道的事情。
假设我在主分支中,另一个开发人员正在开发一个功能,他正在一个名为 newFeature 的独立分支中工作。
如果我在主分支中,我拉主分支,然后是 newFeature 分支,它们会自动合并?我的意思是我不必做
$ git merge newFeature
相反,这些将是我的命令:
$ git checkout master #We move to master branch.
$ git pull origin master #We pull the master branch to sync.
$ git pull origin newFeature #We pull the newFeature branch.
由于我在主分支中,并且我正在拉动其他分支,它们会自动合并吗?
答案 0 :(得分:0)
您正在将newFeature
的工作带到它所在的分支,请记住,如果您不想完成所有工作newFeature
,您也可以提交。
答案 1 :(得分:0)
我建议完全避免使用pull
命令。它只为您运行两个命令:git fetch
,简单,安全,直接;然后你应该 - 至少在概念上 - 根据获取的结果选择另一个命令。但是,在看到fetch的结果之前,必须事先选择命令。由于这个原因和其他原因,git pull
是一个糟糕的工具,就像电锯一样,只要你加油就会自动启动,即使你还没准备好使用它。当然,它似乎方便,直到你看到一两根手指......: - )
也就是说,git pull
运行的第二个命令通常是git merge
。 (您可以将其配置为运行git rebase
,并且还有其他一些极端情况,它们可能无法运行git merge
。)它传递给git merge
的精确参数是/有点棘手,特别是因为你可以传递给git pull
的一些标志是git fetch
的标志,而其他标志只对git rebase
有意义,并且有一些标志可以 在git merge
中非常有用,因为 / p>
因此,这三个命令的简单扩展不是完全相同,但它足够接近:你正在运行:
git pull
这意味着Git实际执行的五个命令是:
git checkout master
git pull origin master
git pull origin newFeature
(因为git checkout master
git fetch origin
git merge origin/master
git fetch origin
git merge origin/newFeature
只运行两个Git命令。)
请注意,其中一个git pull
命令可能毫无意义:没有理由快速连续取两次。 git fetch
步骤获取Git正在调用的另一个Git上可用的任何新提交git fetch
。 origin
- s将更新后的git merge
和origin/master
合并到您当前的分支中,一次一个(这几乎可以肯定是您想要的)。
答案 2 :(得分:0)
我绝对同意@torek。
回答原始问题:
如果/当您只是git pull
时,两个分支不会自动合并。它对该分支执行“合并”操作 ,但不会改变任何其他分支(例如master)。