从远程回购拉后,我的本地回购处于一个奇怪的状态。Git似乎有从远程拉,但日志没有提交承诺
git log
不显示来自远程回购的提交。应该更改的文件保持不变。 git status
显示我在branch master
(如预期的那样)带有干净的工作目录。换句话说,从拉找不到任何证据。
但是,如果我从远程执行特定的提交,则会显示该提交的正确更改。 git show
如何能正常工作,但我的回购没有改变,并且log
没有显示提交?
发生了什么事?
从远程回购拉后,我的本地回购处于一个奇怪的状态。Git似乎有从远程拉,但日志没有提交承诺
git log
不显示来自远程回购的提交。应该更改的文件保持不变。 git status
显示我在branch master
(如预期的那样)带有干净的工作目录。换句话说,从拉找不到任何证据。
但是,如果我从远程执行特定的提交,则会显示该提交的正确更改。 git show
如何能正常工作,但我的回购没有改变,并且log
没有显示提交?
发生了什么事?
可能是那些提交的提交(作为您中止或还原的前一个git pull
的一部分),但不适用于本地master
。
你的git pull失败了,你很难重置。这意味着你回到了你所在的位置。但是git pull的一部分是git fetch。所以你实际上得到了远程分支中包含的对象。为了测试,你可以在
git log origin/master
看看如果不告诉他们,做一个
git fetch
这应该只是更新远程跟踪分支。看到什么是你可以
git ls-remote origin
遥控器上的(假设的起源是有问题的远程名)
记得git pull
是git fetch
和git merge
(或git rebase
组合,如果你配置它是办法)。
这些提交在HEAD/working tree/index中的某处吗?那些承诺如何适用于当地的主人? – Noel 2012-07-31 21:44:52
你可以尝试从'origin/master'合并'git merge origin/master',但结果真的取决于你的具体情况:有'master'(你的“本地视图”的那个分支)和'origin/master'(一个指向master分支的指针,因为它在远程存储库上)是否有分歧?即你是否向你的'主人'提交了任何变更集? – 2012-07-31 21:50:14
要回答你的第一个问题,很可能这些提交在'git log origin/master'中。 – 2012-07-31 21:54:28