这两个命令有什么区别?
git pull
和
git pull origin master
[编辑,2018年5月:git pull
不再是shell脚本,现代Git中的一些细节有所不同。Pull现在还具有递归选项,这使其在子模块中更加有用。该答案将忽略子模块。]
该git pull
脚本旨在作为一种方便的方法,用于在git fetch
其后进行调用git merge
(或进行git pull --rebase
调用,git fetch
然后进行git rebase
)。
第一个额外的参数git pull
告诉它要给哪个远程fetch
操作:
git pull origin
例如,表示从中获取的方法origin
。如果不考虑这一点,Git将使用当前分支的remote
:
$ git branch
* master
$ git config --get branch.master.remote
origin
第二个(以及任何其他)自变量,git pull
告诉它要合并到哪个分支中。这些是在远程上找到的分支的名称。例如,假设您创建一个新分支feature2
来跟踪origin/feature
:
$ git checkout -b feature2 origin/feature
如果您现在要从中获取origin
以拾取添加到其feature
分支的新提交,但是将它们合并到您的本地feature2
分支中:
$ git pull origin feature
如果省略分支名称,则git使用当前分支的merge
:
$ git config --get branch.feature2.merge
feature
请注意,如果您列出多个分支名称,则Git将执行“章鱼合并”。以我的经验,这通常使人第一次感到惊讶:他们认为在每个分支上都会运行一系列单独的-s,但这不是事实。git pull remote br1 br2
git fetch
git merge
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句