Git 即使在 `push --force` 之后也显示差异?
Git shows differences even after `push --force`?
简化:
在我的 master
分支中,我添加了一些垃圾。
然后我把它推到 origin/master
后来我发现添加那个垃圾是错误的。
我知道我 can/should 创建了一个还原提交。
但我没有。我做了一个 git reset --hard
但现在我希望 origin/master 看起来与本地完全一样。
显然我不能推送,因为 git 告诉我在推送之前 pull
。
所以我做了 push --force
:
但即使在那之后,sourcetree 也显示它们不一样:
即使我检查更改,我也看不到任何更改:
问题:
如果远程master
和本地master
没有区别,为什么sourcetree显示我pull
?
甚至 git status
显示我还好(没有拉):
一般建议:每当包装 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 仔细检查,以防万一。
有时 Sourcetree 会与您的本地存储库不同步。发生这种情况时,只需告诉 Sourcetree 使用 F5 (Windows) 或 ⌘+R[ 刷新其视图=15=] (macOS).
SourceTree 定期检查远程状态。
解决方案 1:只需重新打开 Sourcetree
解决方案 2:工具>选项>常规 每 X 分钟检查一次默认遥控器是否有更新。
将 X 设为 1/2 以更快地查看状态变化。就像图片一样,您可以在 1 分钟后看到更新的状态。
希望这会有所帮助。
简化:
在我的 master
分支中,我添加了一些垃圾。
然后我把它推到 origin/master
后来我发现添加那个垃圾是错误的。 我知道我 can/should 创建了一个还原提交。
但我没有。我做了一个 git reset --hard
但现在我希望 origin/master 看起来与本地完全一样。
显然我不能推送,因为 git 告诉我在推送之前 pull
。
所以我做了 push --force
:
但即使在那之后,sourcetree 也显示它们不一样:
即使我检查更改,我也看不到任何更改:
问题:
如果远程master
和本地master
没有区别,为什么sourcetree显示我pull
?
甚至 git status
显示我还好(没有拉):
一般建议:每当包装 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 仔细检查,以防万一。
有时 Sourcetree 会与您的本地存储库不同步。发生这种情况时,只需告诉 Sourcetree 使用 F5 (Windows) 或 ⌘+R[ 刷新其视图=15=] (macOS).
SourceTree 定期检查远程状态。
解决方案 1:只需重新打开 Sourcetree
解决方案 2:工具>选项>常规 每 X 分钟检查一次默认遥控器是否有更新。 将 X 设为 1/2 以更快地查看状态变化。就像图片一样,您可以在 1 分钟后看到更新的状态。
希望这会有所帮助。