所以 - 有人可以澄清这个:
我跑:
git pull origin master
git status
然后它会改变并说:
your branch is ahead of origin/master ... blahblah by 6 commits...
然后我跑
git fetch
git status
它说:
# On branch master
nothing to commit (working directory clean)
所以 - 我认为默认情况下git pull
会执行git fetch - 那么为什么在没有额外git fetch
的情况下它会“提前6次提交”?
答案 0 :(得分:2)
git status
中的“提前或后面的X提交”文本基于当前分支的跟踪分支的状态; remotes/origin/master
如果您在master
上,则为git pull
。
当您同时指定远程和分支运行FETCH_HEAD
时,它会获取新提交并将它们合并到当前分支,但它不更新origin的远程跟踪分支。相反,它指向刚刚提交的提交为git fetch
。
另一方面,在没有指定参数的情况下运行git pull
,会更新所有远程跟踪分支,因此它会消息消失。没有参数的{{1}}也是如此。
一个微妙的问题,我自己已经多次打过!我希望git在针对特定遥控器的每次提取时更新所有远程跟踪分支。