【问题标题】:git: merge back in what I merged outgit:合并回我合并的内容
【发布时间】:2012-08-07 04:02:50
【问题描述】:

所以我将一个分支“badBranch”合并到我的开发分支中,并在合并后发现了几个提交,它是错误的。

我做了一个还原:git revert -m 1 <commit hash of the merge>

工作得很好。时间流逝,代码被编写,进一步的更改在开发中提交。

现在,闲暇之余,我想将 badBranch 重新合并到 develop(或 development 到它)中,看看我是否可以修复它。

但是 develop 认为 badBranch 在它的历史中(我认为?),所以当我检查 badBranch 并将 develop 合并到其中时,我只是得到了 develop 的当前状态。

如何强制将 devleop 和 badBranch 实际合并?

谢谢。

【问题讨论】:

  • 作为记录,man git-revert 必须说:“恢复合并提交声明 您永远不会想要合并带来的树更改。如结果,以后的合并只会带来提交引入的树更改,这些更改不是先前恢复的合并的祖先。这可能是也可能不是你想要的“。强调我的:)

标签: git merge revert


【解决方案1】:

这出乎意料的简单 - 只需还原还原:

git revert <commit hash of your merge revert>

Marco 的 howto 链接还提供了下一个解决方案:使用 -no-ff 重新创建 badBrahcn 以重新创建所有提交(所有 SHA ID 将不同)并将其合并到主节点。

【讨论】:

【解决方案2】:

我不知道这是否可行,但如果你 checkouted badBranch 和 merged 在 develop 然后 checkouted develop 和 merged 在 badBranch 怎么办?

【讨论】:

    猜你喜欢
    • 2012-07-28
    • 2015-08-05
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多