简化:
在我的master
分店,我添加了一些垃圾。
然后我把它推到了原点/主人
后来我发现添加垃圾是个错误。我知道我可以/应该创建一个还原提交。
但我没有。我做了一个git reset --hard
但是现在我希望origin / master看起来和我的本地完全一样。
显然我不能推,因为git告诉我pull
之前推。
所以我做了push --force
:
但即使在那之后,sourcetree也表明它们不一样:
即使我检查更改,我也看不到任何变化:
题:
如果远程master
和本地master
没有差异,为什么sourcetree会告诉我pull
?
甚至git status
显示我很好(没有拉):
一般建议:每当包装CLI程序或库的GUI出现异常时,最好直接检查实际的CLI程序或库。
在这种情况下,运行一个fetch:
git fetch origin
然后检查分支指向的位置:
git log master origin/master
也许:
git branch --all --verbose
甚至:
git show master
git show origin/master
允许您检查分支实际指向哪个提交(哈希),从而确认(或不确定)GUI是否存在问题。
即使您确认SourceTree在重新打开时没有显示问题,我也会直接用Git仔细检查,以防万一。
有时Sourcetree与您的本地存储库不同步。发生这种情况时,只需告诉Sourcetree使用F5(Windows)或⌘+ R(macOS)刷新其视图。