【问题标题】:Git - Unmerge after other commits have been madeGit - 在进行其他提交后取消合并
【发布时间】:2017-02-01 19:11:53
【问题描述】:

图片展示了我的合并历史,包括我在最近几次提交之前完成的合并。我可以撤消此合并,同时保留我之后所做的提交吗?当我应该与 master 合并时,我与 develop 合并了。

【问题讨论】:

    标签: git merge git-merge


    【解决方案1】:

    这种事情被here覆盖了。

    根据您的情况,您可能需要revertmerge

    【讨论】:

    • 我看到了这个参考,但我发现它有点混乱。我不知道要使用哪些命令。
    • @RafaelReis 使用git revert -m 1 [sha]。您可以使用 git log 找到 sha
    【解决方案2】:

    理论上,您可以先运行git log 来获取提交列表。然后,您将运行 git checkout 到不同的分支(如果您没有,请使用 git branch <branch name> 创建。最后,运行 git reset --hard <commit ID for your commit of interest>。这将永久撤消您选择的合并提交。

    【讨论】:

    • 我看不到这个工作。我需要在合并后保持提交。我只是不希望在合并中添加文件。您的解决方案在合并之前会返回,所以我会丢失提交。
    【解决方案3】:

    你可以试试

    git revert -m 1 <sha1>
    

    &lt;sha1&gt; 是您要删除的合并提交。

    这里描述: https://mijingo.com/blog/reverting-a-git-merge

    【讨论】:

    • 这会保留我之后所做的提交吗?
    • 除了删除恢复提交的内容外,恢复不应该做任何事情,所以是的。但这也意味着它实际上也不会删除合并,只会恢复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2012-03-11
    • 2022-10-20
    • 2018-11-29
    • 2015-12-25
    • 1970-01-01
    相关资源
    最近更新 更多