git - 即使在`push --force`之后Git也会显示差异?
问题描述
简化:
在我的master
分支中,我添加了一些垃圾。
然后我把它推到原点/主人
后来我发现添加那个垃圾是错误的。我知道我可以/应该创建一个还原提交。
但我没有。我做了一个git reset --hard
但现在我希望 origin/master 看起来与我的本地完全相同。
显然我不能推送,因为 gitpull
在推送之前告诉我要推送。
所以我做了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 仔细检查,以防万一。
推荐阅读
- arrays - Excel/VBA:根据字段匹配查找行并计算非空值
- php - 在 laravel 上使用 Https 的 API 路由给出 404
- powershell-4.0 - 创建自动化 - powershell
- javascript - 为什么这两个 JavaScript 正则表达式会产生不同的结果?
- c# - 无法加载文件或程序集“System.Data.SqlClient,...”
- python - 使用 Pytest 框架进行 Argparse 测试
- python - 应用 scipy 过滤器函数(使用 NAN)后保留 pandas 行号
- c# - 区分敌人射弹和用户射弹
- symfony - getUser() 方法在控制器构造函数中不起作用
- python-3.x - 未提供 y_range.start 时,散景悬停不适用于零值