我正在尝试解决一个看似随机出现的问题,每隔几天就会出现一次。我切换到一个从未操作过的分支,并被告知我比远程分支“ahead”,尽管我没有在此分支上进行任何提交。然后我试图找出我做了哪些本地更改,但是并没有发现任何更改。过去,执行
git push
似乎可以解决这个问题,但是我们盲目地推送不知道什么内容会让我们非常紧张,而不理解根本原因。下面是一个命令,我认为它说明了我的困惑。如果我领先于远程,那么git diff
不应该返回我的更改吗?我认为我已经与远程保持同步,这就是我尝试通过包含git fetch
/git pull
命令来展示的。 $ echo '====FETCH====' && git fetch && echo '====PULL====' && git pull && echo
'====STATUS====' && git status && echo '====DIFF====' && git diff && echo '====
DIFF ORIGIN/DEV====' && git diff origin/dev
====FETCH====
====PULL====
Already up-to-date.
====STATUS====
On branch dev
Your branch is ahead of 'origin/dev' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
====DIFF====
====DIFF ORIGIN/DEV====
有人知道这里发生了什么吗?
git pull
,就会出现这些提交。使用git log --graph
命令,你应该能够查看提交历史并确认这一点。 - Holger Just