Dan*_*boy 12 git git-pull git-fetch
所以 - 有人可以澄清这个:
我跑:
git pull origin master
git status
Run Code Online (Sandbox Code Playgroud)
然后它就会提出改变并说:
your branch is ahead of origin/master ... blahblah by 6 commits...
Run Code Online (Sandbox Code Playgroud)
当我跑的时候
git fetch
git status
Run Code Online (Sandbox Code Playgroud)
它说:
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
所以 - 我认为git pull默认情况下会执行git fetch - 那么为什么它会在没有额外的情况下"提前6次提交" git fetch呢?
中的“领先或落后 X 提交”文本git status基于当前分支的跟踪分支的状态;例如,remotes/origin/master如果您在 上。master
当您git pull使用指定的远程和分支运行时,它会获取新的提交并将它们合并到当前分支,但它不会更新源的远程跟踪分支。相反,它指向刚刚获取的提交作为FETCH_HEAD.
git fetch另一方面,在不指定参数的情况下运行会更新所有远程跟踪分支,因此它会使消息消失。git pull不带任何参数执行相同的操作。
这是一个微妙的陷阱,我自己也遇到过很多次!我希望 git 在针对特定远程的每次获取时更新所有远程跟踪分支。
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |