对于git pull和git-fetch存在一些困惑。

9 浏览
0 Comments

对于git pull和git-fetch存在一些困惑。

这个问题在这里已经有了答案:

git pull和git fetch有什么区别?

那么,有人可以澄清这个问题吗:

我运行:

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个提交”?

admin 更改状态以发布 2023年5月25日
0
0 Comments

git status中的"X个提交之前或之后"的文本基于当前分支的跟踪分支的状态; 例如,如果您在master上,则为remotes / origin / master

当您使用远程和分支指定运行git pull时,它会获取新的提交并将其合并到当前分支中,但它不会更新原始的远程跟踪分支,而是将其指向刚刚获取的提交为 FETCH_HEAD

另一方面,当您未指定参数运行git fetch时,它会更新所有远程跟踪分支,因此它会使消息消失。没有参数的 git pull 相同。

这是一个我自己遇到的微妙问题,希望git可以在每次针对特定远程的提取中更新所有远程跟踪分支。

0