到现在为止,如果我曾经提交并将错误推送到主分支,我的解决方法是,假设 git 日志看起来像
commit bad_hash
commit another_bad_hash
commit yet_another_bad_hash
commit good_hash
我过去“解决”这种情况的方式是:
git reset --hard good_hash
git push -f origin master
是的,这会起作用......但看起来不是很优雅,因为它有效地删除了提交历史。
因此,在破坏了我的自我的情况之后,我检查了更好的方法,并提出了 git revert 方法,基本上我现在使用
git revert bad_hash another_bad_hash yet_another_bad_hash
git push origin master
git revert 将创建三个提交(每个恢复的哈希一个),之后,需要推送来更新远程。
现在,问题是,这种策略是否正确?对我来说看起来比重置要好得多——硬,因为回购的历史没有被中继,如果最终有人想检查为什么会出现问题,他们总是可以做一个
git diff bad_hash
这个推理是正确的还是我仍然缺少基本概念。
谢谢