小编典典

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

all

git revert <commit_hash>单独是行不通的。-m必须指定,我对此感到很困惑。

以前有人经历过吗?


阅读 123

收藏
2022-02-25

共1个答案

小编典典

-m选项指定 父编号 。这是因为合并提交有多个父级,并且 Git 不会自动知道哪个父级是主线,哪个父级是您要取消合并的分支。

当您在 的输出中查看合并提交时git log,您将看到其父项列在以 开头的行上Merge

commit 8f937c683929b08379097828c8a04350b9b8e183
Merge: 8989ee0 7c6b236
Author: Ben James <ben@example.com>
Date:   Wed Aug 17 22:49:41 2011 +0100

Merge branch 'gh-pages'

Conflicts:
    README

在这种情况下,git revert 8f937c6 -m 1将为您提供原样的树8989ee0git revert -m 2并将恢复原样的树7c6b236

为了更好地理解父 ID,您可以运行:

git log 8989ee0

git log 7c6b236
2022-02-25