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