中止 Git 合并
Abort a Git Merge
我正在开发一个使用 Git 作为 VCS 的项目。我从 master 的主线分支中得到了一个分支xyz
。工作了一段时间后,我提交了我的代码并拉取了分支主线。
拉力很好。然后我将代码与master合并。合并后,某些文件出现问题。合并后我还没有提交代码。有人可以指导我如何中止合并并将我当前工作的分支恢复到合并前的状态吗?
只要你没有提交就可以输入
git merge --abort
正如命令行提示的那样。
说实话,网络上已经有很多很多资源解释了如何做到这一点:
Git: how to reverse-merge a commit?
Git: how to reverse-merge a commit?
Undoing Merges,来自 Git 的博客(取自 archive.org 的 Wayback Machine)
所以我想我会总结其中的一些:
git revert <merge commit hash>
这会创建一个额外的 "revert" 提交,表示您撤消了合并
git reset --hard <commit hash *before* the merge>
这会将历史重置为您进行合并之前的历史记录。如果你在合并后有提交,你将需要 cherry-pick
它们到之后。
但老实说 this 这里的指南比我能用图表解释的任何东西都要好! :)
如果您在发生合并冲突时执行 "git status",首先 git 会告诉您如何中止合并。
我正在开发一个使用 Git 作为 VCS 的项目。我从 master 的主线分支中得到了一个分支xyz
。工作了一段时间后,我提交了我的代码并拉取了分支主线。
拉力很好。然后我将代码与master合并。合并后,某些文件出现问题。合并后我还没有提交代码。有人可以指导我如何中止合并并将我当前工作的分支恢复到合并前的状态吗?
只要你没有提交就可以输入
git merge --abort
正如命令行提示的那样。
说实话,网络上已经有很多很多资源解释了如何做到这一点:
Git: how to reverse-merge a commit?
Git: how to reverse-merge a commit?
Undoing Merges,来自 Git 的博客(取自 archive.org 的 Wayback Machine)
所以我想我会总结其中的一些:
git revert <merge commit hash>
这会创建一个额外的 "revert" 提交,表示您撤消了合并git reset --hard <commit hash *before* the merge>
这会将历史重置为您进行合并之前的历史记录。如果你在合并后有提交,你将需要cherry-pick
它们到之后。
但老实说 this 这里的指南比我能用图表解释的任何东西都要好! :)
如果您在发生合并冲突时执行 "git status",首先 git 会告诉您如何中止合并。