如何撤消推送的合并提交

使用 git reset 命令撤消

在这种方法的框架中,我们需要像上一节中提到的那样重置合并提交,然后运行以下命令:

git push oroirn HEAD --force

我们可以使用更安全的方法代替 --force:--force-with-lease,它不会覆盖其他开发人员的工作。

使用 git revert 命令撤消

如果我们不想给并行工作的开发人员带来困难,那么我们可以使用 git revert 命令。

为此,我们需要使用 git log 命令找到合并提交的适当哈希值。
然后,我们应该将哈希值放入以下命令中:

git revert -m 1 <merge-commit-hash>

使用 -m 1 可以命令 Git 恢复到合并提交的第一个父级。
如果要恢复到第二个父级,则应使用 -m 2 选项。

如何撤消未推送的合并提交

撤消 git merge 的一种有用方法是运行 git reset 命令。

使用此方法将保留所做的所有本地更改。
它会移动我们在合并之前所做的最后一次提交。
要运行这个命令,你应该像这样:

git reset --merge ORIG_HEAD

作为替代方案,我们可以通过运行 git log 命令找到合并提交的适当哈希。

之后,我们需要将哈希放入以下命令中:

git reset --hard <merge-commit-hash>

如我们所见,这是清理合并、同时保存本地更改的完美方法。
无论如何,它并非没有缺点。
如果本地分支在具有任何提交数量的远程分支之后,请不要指望此方法的绝对结果。
使用此方法时,我们还应该考虑另一种情况。
例如, Git 历史记录可能会被重写,我们团队中的其他程序员可能很难跟踪远程存储库的更改。

如何撤消 Git 合并

有时,我们想撤消合并操作,不管它是否因为合并命令、拉取命令或者其他原因而发生。

其中我们将考虑在 Git 中撤消合并的几个选项。

返回已恢复的更改

这将更改数据,而不是合并前的历史记录。
所以,这并不完全像撤消。
如果我们再次将 develop 合并到 master 中,则无法应用恢复到它的更改。
如果要返回更改,则需要还原第一次还原。
如我们所见,有多种方法可以撤消 git merge。
在选择上述方法之一之前,我们应该考虑它可能带来的所有后果。

Git Merge 的主要用途

Git merge 主要是为了合并两个分支。
我们还可以使用它来将多个提交合并到一个历史记录中。
合并提交被认为是唯一的,因为有两个父提交。
每当产生新的合并提交时,Git 会自动合并单独的历史记录。
但它不会合并历史记录中更改的数据。

如何撤消有冲突的合并

如果调用merge命令后发生冲突,则可以使用以下命令撤消整个过程:

git merge --abort
日期:2020-06-02 22:16:44 来源:oir作者:oir