从远程仓库拉取后,我的本地仓库处于奇怪的状态。
git log
不显示来自远程仓库的提交。应该更改的文件保持不变。git status
表明我branch master
(如预期)使用干净的工作目录。也就是说,从拉扯中找不到任何证据。
但是,如果我git show
来自远程的特定提交,则会显示该提交的正确更改。怎样才能git show
正常工作,但我的仓库没有改变并且log
不显示提交?
这是怎么回事?
从远程仓库拉取后,我的本地仓库处于奇怪的状态。
git log
不显示来自远程仓库的提交。应该更改的文件保持不变。git status
表明我branch master
(如预期)使用干净的工作目录。也就是说,从拉扯中找不到任何证据。
但是,如果我git show
来自远程的特定提交,则会显示该提交的正确更改。怎样才能git show
正常工作,但我的仓库没有改变并且log
不显示提交?
这是怎么回事?
可能是那些已获取的提交(作为git pull
您中止或恢复的先前的一部分),但未应用于本地master
.
你的 git pull 失败了,你很难重置。这意味着你回到了原来的位置。但是 git pull 的一部分是 git fetch。所以你实际上得到了远程分支中包含的对象。要测试你可以看看
git log origin/master
如果这没有显示它们,请执行
git fetch
这应该只更新远程跟踪分支。要准确查看遥控器上的内容,您可以
git ls-remote origin
(假设 origin 是相关遥控器的名称)
请记住,这git pull
是和的组合git fetch
(git merge
或者git rebase
如果您以这种方式配置它)。