还原 git 合并和连续提交

Reverting git merge and consecutive commits

我在尝试将分支与主分支合并时遇到了麻烦,因为合并试图删除我需要保留的主分支上的文件和更改。我最终向 master 提交了一个部分损坏的合并,之后我做了很多提交来试图解决这个问题。

现在我想通过将母版重置为原始状态来撤消所有这些操作。我是唯一对 master 进行更改的人,因此其他用户应该不是问题。对之前的提交进行硬重置就足够了吗?或者我是否需要采取其他一些步骤来确保重置不会在未来的合并中引起问题?

硬重置就足够了,因为它会将所有文件重置为指定提交中的状态。

例如,git reset --hard HEAD~3 会将所有文件重置为倒数第三次提交,无论它们在最后三次提交中发生了什么。您的文件将处于这些提交从未发生过的状态。

除了使用 HEAD~X 符号,您当然可以只使用要重置为的提交的 SHA id。

编辑:强制性警告:如果有人拉动并正在处理您的更改,如果他们试图将他们的工作合并到您重置的母版中,事情就会变得一团糟。此外,reset --hard 删除所有未提交的更改,没有任何机会取回它们。