这是撤消git东西的好策略吗?

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)

这种推理是正确的还是我仍然缺少基本概念.

谢谢

Ali*_*air 5

此工作流程解释了您需要知道的一切.它是一个很好的资源IMHO.

Git Mess Workflow