即使在`push --force`之后,Git也会显示差异?

时间:2019-04-23 07:31:10

标签: git atlassian-sourcetree

简化:

enter image description here

在我的master分支中,添加了一些垃圾。
然后我把它推到原产地/主人那里

后来我发现添加该垃圾是一个错误。 我知道我可以/应该创建一个还原提交。

但是我没有。我做了一个git reset --hard

enter image description here

但是现在我希望原点/原版看起来与我的本地原版完全相同。

很显然,我无法进行推送,因为git在推送之前告诉我pull

所以我做了push --force

enter image description here

但是即使在那之后,sourcetree也显示出它们是不一样的:

enter image description here

即使我检查更改,也看不到更改:

enter image description here

问题:

如果远程master和本地master没有区别,为什么sourcetree向我显示pull

enter image description here

即使git status表示我没事(没有拉动):

enter image description here

3 个答案:

答案 0 :(得分:1)

一般建议:每当包装CLI程序或库的GUI出现异常时,最好直接与实际的CLI程序或库进行检查。


在这种情况下,运行提取:

git fetch origin

然后检查分支指向的位置:

git log master origin/master

或者也许:

git branch --all --verbose

甚至:

git show master
git show origin/master

允许您检查分支实际指向哪个提交(哈希),并因此确认(或不确认)GUI是否有问题。

即使您确认SourceTree在重新打开它时也没有显示问题,我还是会直接与Git仔细检查,以防万一。

答案 1 :(得分:1)

有时Sourcetree与本地存储库不同步。发生这种情况时,只需告诉Sourcetree使用 F5 (Windows)或 + R (macOS)刷新其视图即可。

答案 2 :(得分:1)

SourceTree定期检查远程状态。

解决方案1 ​​:只需重新打开Sourcetree

解决方案2 工具>选项>常规每隔X分钟检查默认遥控器的更新。  将X设置为1/2,可以更快地看到状态变化。就像图片一样,您可以在1分钟后看到更新状态。

change remote update time

希望这会有所帮助。