分支是 Git 不可或缺的一部分,因为它可以让你在不修改已经投入生产的代码的情况下工作。
当你在 main
以外的分支完成工作后,你需要将它与 main
合并,以便反映你刚刚集成的功能或错误修复。
但是,如果你在合并之后发现还有一件事情忘了做怎么办?或者,如果你在没有准备好时意外合并了怎么办?
你可以在 Git 中撤消几乎所有内容。因此,在本文中,我将向你展示如何在 Git 中撤销合并,以便你可以恢复到上次提交的内容。
如何在 Git 中撤消合并提交
你可以使用 Git 重置命令撤消合并。
首先,你需要检查提交哈希(或 id),以便你可以使用它返回上一个提交。
要检查哈希,请运行 git log
或 git reflog
。git reflog
是一个更好的选择,因为它更具可读性。
当你获得要返回的提交的哈希时,运行 git reset --hard commit-before-the-merge
:
运行命令时,你应该会看到代码编辑器中删除了一些内容。
如果你不确定上一次提交的哈希值,你可以运行 git reset --hard HEAD~1
以返回到合并之前的提交:
请注意,当你使用 --hard
标记撤消合并时,任何未提交的更改都将被还原。
在 Git 中撤消合并的更好方法
由于上面讨论的方法将恢复未提交的更改,Git 提供了一个更安全的标记 --merge
。
要使用 --merge
标记撤消合并,请运行 git reflog
以查看提交的哈希值,然后运行 git reset --merge previous-commit
:
你还可以通过运行 git reset --merge HEAD~1
将 HEAD 关键字与 --merge
标记一起使用:
注意:如果你在使用 --merge
标记时没有得到此命令的响应,请不要担心,它可以运行。
小结
在本文中,你学习了如何在 Git 中撤消合并,因此你可以撤消错误或不需要的合并,并更有效地使用 Git。
以下是使用 --hard
和 --merge
标记撤消合并时的要点:--hard
标记删除未提交的更改,而 --merge
标记保留未提交的更改。