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

标签 git revert git-reset git-revert

直到现在,如果我曾经提交错误并将错误推送到主分支,我的解决方法是,假设 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

这个推理是否正确,还是我仍然缺少基本概念。

谢谢

最佳答案

此工作流程解释了您需要了解的一切。恕我直言,这是一个很好的资源。

致谢:Justin Hileman

Git Mess Workflow

关于git - 这是撤消 git 东西的好策略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14224492/

相关文章:

git - 取消提交的更改,但将新文件保留在索引中

java - Git 多樱桃选择与 Bash 抛出错误

ruby-on-rails - 每个 rails 命令上的致命 : Not a git repository (or any of the parent directories): . git 但 git 命令工作正常

git - 恢复 git 中的一系列提交

Git revert 没有按预期工作

git - 如何丢弃 Git 中的本地提交?

git - 'git status' 显示更改的文件,但 'git diff' 没有

git - 是否有使 Robohelp 2019 与 Windows 10 ssh-agent 一起使用的解决方法?

perforce - 在 perforce 中恢复未搁置的文件

git - 无法使用 Git 将文件重置为特定提交