恢复推送到远程的合并提交的步骤

假设我们在合并提交所在的分支上。

查看历史记录

众所周知,在 Git 中,合并提交有两个父提交,运行 git log 命令后,在其输出中可以看到合并提交的父提交哈希。

commit 4f937c683929b08379097828c8a04350b9b8e45 
Merge: 7676ee5 8c4b635 
Author: SSL 
Date: THU JAN 21 19:30:24 2016 +0100 Merge branch 'gh-pages' Conflicts: README

恢复提交

因为,在这种情况下,我们想要恢复合并提交,我们不能像恢复普通提交一样采取行动。

其中我们需要使用 -m 1|2 选项运行 git revert 命令:

git revert 8f937c6 -m 1

它会给你一棵树,因为它是:

7676ee5

使用 -m 1,我们可以指示 Git 恢复到合并提交的第一个父级。

如果我们使用 -m 2 而不是 -m 1 选项,Git 将恢复到合并提交的第二个父级。

在 -m 2 的情况下,树将恢复原状:

8c4b635

为了更好地理解父 ID,我们需要运行:

git log 7676ee5

或者:

git log 8c4b635

git log 命令

每当需要列出和过滤项目历史记录或者搜索特定更改时,我们都可以使用 git log 命令。

它将显示已提交的快照。
请注意,与控制工作目录和暂存区的 git status 相比,此命令只能对已提交的历史记录起作用。

git revert 命令

git revert 主要用于撤消对 git 存储库提交历史的更改。

这个命令接受一个特定的提交,但它不会将 ref 提交移动到那个提交。
git revert 操作接受特定提交,反转其更改,并生成新的“还原提交”。

但是我们还应该考虑 git revert 可以撤消单个提交并且不会返回到项目的先前状态。
该操作可以在 git reset 命令的帮助下完成。

如何在 Git 中恢复已经推送到远程分支的合并提交

假设你已经合并了两个分支并推送了合并的提交。
之后,我们发现应该恢复合并的提交。
其中我们将协助我们做到这一点。

日期:2020-06-02 22:16:43 来源:oir作者:oir