本文主要是介绍本地没有任何修改,只是git pull时,显示git ahead of ‘origin/master‘ by * commits,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- TL;DR
- 问题
- 原因
- 解决方案
TL;DR
本地没有更改,只是从远程pull,但是显示Your branch is ahead of ‘origin/master’ by 3 commits.
原因是从远程更新了本地的master 分支,但是没有更新本地的追踪分支 origin/master, 解决方案是运行:
git fetch
让本地追踪分支(tracing branch)和远程同步
太长不看版到此结束,以下是具体原因和发现问题的经过。
问题
从服务器或者github clone下来之后,在本地还没有add commit等操作之前,发现remote有更新。
但是:
> git pull origin master
> Your branch is ahead of 'origin/master' by 3 commits.
原因
目前大家碰到的主要原因都是:本地有了修改添加提交等操作,所以理所应当的ahead远程分支。这个解决方案没啥好解决的,该push就push。
实际的问题在与我本地没有提交。
找了一些答案总不得要领,最后在这个链接找到了提示,虽然这个解题过程并不对,但是给了一个正确解决方案和重要的提示:
git fetch # 解决本次问题
git pull # 以后不要用 git pull origin master
方法应该是可行的,但是:
- git fetch 做了什么,git pull origin master 不是 fetch 加 merge吗?
- git pull 和 git pull origin master 有什么不同。
从这两个角度找答案,最终理清了整个事情。
相似问题参考
git pull 等的区别
'origin/master 并不是远程分支,而是追踪远程分支的一个本地分支。
当 git pull 的时候,会git fetch 更新 origin/master这个本地分支让它和服务器一致,另一方面会merge 本地的master分支。
但是git pull origin master的时候,只会更新本地的master 分支,而origin/master 这个老的tracing分支,他并没有被更新,也就会提示ahead了。
至于 git pull 和git pull origin master,git pull 没有指定分支,所以tracing branch也会从服务器拉下来。
解决方案
git fetch
这篇关于本地没有任何修改,只是git pull时,显示git ahead of ‘origin/master‘ by * commits的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!