代码之家  ›  专栏  ›  技术社区  ›  Marcus Leon

Git:如何恢复合并和其他两个相邻的提交?

  •  2
  • Marcus Leon  · 技术社区  · 7 年前

    我们有以下git日志:

    D:\blah>git log -n 5 --oneline    
    fc19dec My change #2
    68fa9db Merge branch 
    4bc1ac7 My change #1
    ec345d9 [maven-release-plugin] prepare for next development iteration
    

    我想恢复到ec345d9,但出现了一个错误:

    D:\blah>git revert --no-commit ec345d9..HEAD
    error: a cherry-pick or revert is already in progress
    hint: try "git cherry-pick (--continue | --quit | --abort)"
    fatal: revert failed
    

    我该怎么做?

    我知道 issue

    1 回复  |  直到 7 年前
        1
  •  2
  •   torek    7 年前

    首先,当您指定 -m 1 (或其他主线编号)选项。

    (嗯, 第一 首先,完成或中止樱桃采摘或恢复你现在正处于中间。然后检查合并是否包含这些提交的更改之一。)

    现在,您已经确定哪些提交要还原,哪些需要 -m 选项以及需要哪些选项 使用 -m 选项,一次做一个,最新的一个:

    git revert fc19dec
    git revert -m 1 68fa9db
    git revert 4bc1ac7
    

    例如。请注意,这将生成三个独立的新提交,每个提交执行一个还原。(这是您使用 .. 符号。)如果您想获得一个大的恢复提交,请使用 git revert -n 每次,完成后分别提交最终结果。