2012-07-31 80 views
2

从远程回购拉后,我的本地回购处于一个奇怪的状态。Git似乎有从远程拉,但日志没有提交承诺

git log不显示来自远程回购的提交。应该更改的文件保持不变。 git status显示我在branch master(如预期的那样)带有干净的工作目录。换句话说,从拉找不到任何证据。

但是,如果我从远程执行特定的提交,则会显示该提交的正确更改。 git show如何能正常工作,但我的回购没有改变,并且log没有显示提交?

发生了什么事?

回答

3

可能是那些提交的提交(作为您中止或还原的前一个git pull的一部分),但不适用于本地master

+0

这些提交在HEAD/working tree/index中的某处吗?那些承诺如何适用于当地的主人? – Noel 2012-07-31 21:44:52

+1

你可以尝试从'origin/master'合并'git merge origin/master',但结果真的取决于你的具体情况:有'master'(你的“本地视图”的那个分支)和'origin/master'(一个指向master分支的指针,因为它在远程存储库上)是否有分歧?即你是否向你的'主人'提交了任何变更集? – 2012-07-31 21:50:14

+0

要回答你的第一个问题,很可能这些提交在'git log origin/master'中。 – 2012-07-31 21:54:28

1

你的git pull失败了,你很难重置。这意味着你回到了你所在的位置。但是git pull的一部分是git fetch。所以你实际上得到了远程分支中包含的对象。为了测试,你可以在

git log origin/master 

看看如果不告诉他们,做一个

git fetch 

这应该只是更新远程跟踪分支。看到什么是你可以

git ls-remote origin 

遥控器上的(假设的起源是有问题的远程名)

记得git pullgit fetchgit merge(或git rebase组合,如果你配置它是办法)。