【问题标题】:Reverting git merge and consecutive commits恢复 git merge 和连续提交
【发布时间】:2018-06-14 00:51:54
【问题描述】:
我在尝试将分支与 master 合并时遇到了麻烦,因为合并试图删除 master 上我需要保留的文件和更改。我最终向主服务器提交了部分损坏的合并,之后我进行了很多次提交以试图解决问题。
现在我想通过将主服务器重置为其原始状态来撤消所有这些操作。我是唯一对 master 进行更改的人,因此其他用户不应该成为问题。对以前的提交进行硬重置就足够了吗?还是我需要采取其他步骤来确保重置不会在未来的合并中造成问题?
【问题讨论】:
标签:
git
github
git-merge
git-reset
【解决方案1】:
硬重置就足够了,因为它将所有文件重置为指定提交中的状态。
例如,git reset --hard HEAD~3 会将所有文件重置为倒数第三个提交,无论它们在最后三个提交中发生了什么。您的文件将处于这些提交从未发生过的状态。
除了使用HEAD~X 表示法,您当然可以只使用您想要重置的提交的SHA id。
编辑:强制性警告:如果有人拉动并正在处理您的更改,那么如果他们试图将他们的工作合并到您重置的主服务器中,事情就会变得混乱。此外,reset --hard 会删除所有未提交的更改,而没有任何机会取回它们。