直到现在,如果我曾经提交错误并将错误推送到主分支,我的解决方法是,假设 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
是的,这会起作用...但看起来不是很优雅,因为它有效地删除了提交历史记录。
所以在这种情况毁了我的 self 之后,我检查了更好的方法,并提出了 git revert 一个,基本上我现在使用
git revert bad_hash another_bad_hash yet_another_bad_hash
git push origin master
git revert 将创建三个提交(每个还原的哈希一个),之后,需要推送来更新远程。
现在,问题是,这个策略是否正确?对我来说看起来比 reset --hard 好多了,因为 repo 的历史没有被 trunked,如果最终有人想检查为什么会出现问题,他们总是可以做一个
git diff bad_hash
这个推理是否正确,还是我仍然缺少基本概念。
谢谢
最佳答案
关于git - 这是撤消 git 东西的好策略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14224492/