Why do local commits appearing after git pull?
在从远程启动之前,我总是确保没有本地提交以避免冲突。但是,我经历过:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | admin@localhost ~/home (master) $ git status # On branch master nothing to commit, working directory clean admin@localhost ~/home (master) $ git pull origin master remote: Counting objects: 5, done. remote: Total 5 (delta 4), reused 5 (delta 4), pack-reused 0 Unpacking objects: 100% (5/5), done. From https://github.com/xxxxxxx * branch master -> FETCH_HEAD Updating 1234567..qwertyu Fast-forward home/templates/test.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) admin@localhost ~/home (master) $ git status # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # (use"git push" to publish your local commits) |
在我从遥控器拔出后,显示了未完成的提交。我使用
UPDATE: I've fixed the issue by running
git fetch . By the way, I'm
using git version 1.8.3. Thanks!
号
如果您的Git版本非常旧(在1.8.4之前),这种行为是正常的。
如果您的Git版本是1.8.4或更高版本,则此行为不正常。
(使用
记住,在
这个远程跟踪分支的目的是记住"origin的主人在哪里,上次我们和origin交谈的时候"。
接下来,请注意:
1 | git pull origin master |
跑:
1 | git fetch origin master && git merge FETCH_HEAD |
号
在1.8.4之前的Git版本中,当从
原来这是一个错误,所以Git的现代版本,从1.8.4版开始,现在当你从
在更新或未能更新您的
1
2
3
4 Updating 1234567..qwertyu
Fast-forward
home/templates/test.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
号
所以你自己的
如果您的git是现代的,并且在
要修复它,您只需运行:
1 | git fetch origin |
甚至只是:
1 | git fetch |
。
即使在这些真正古老的git发行版中,它也会让您的git更新其内存"
(如果您将