Hg合并来自另一个分支的特定提交

时间:2011-09-27 17:02:31

标签: mercurial

我有两个分支Dev和Feature1。我正在开发Feature1,创建所述功能并提交它。然后我编写了Feature2的代码,但是在Feature1分支而不是新分支(Feature2)下提交了它。所以现在我在Feature1分支中有两个功能作为两个单独的提交,但我只想将第二个功能包含在Dev中。

这样做是多么善变的方式?

3 个答案:

答案 0 :(得分:10)

使用hg graft

此命令使用Mercurial的合并逻辑从其他分支复制单个更改,而不在历史记录图中合并分支。这有时被称为“后移”'或者' cherry-picking'。

文档:https://www.mercurial-scm.org/repo/hg/help/graft

答案 1 :(得分:4)

  1. 假设您尚未发布提交内容:

    如果要独立于提交 Feature1 合并提交 Feature2 ,则应该 move it on its own branch

  2. 如果已经发布:

    使用transplant扩展程序“复制” Feature2 提交并将其设置为 它自己的分支。然后在 Feature1 分支上backout Feature2 提交。轮到你了 合并 Feature2 也独立于 Feature1

  3. 在任何情况下,您也可以将 Feature2 放在自己的分支上 如果这是您的实际意图,请直接进入 Dev 分支。

答案 2 :(得分:0)

  

将第二个功能包含回Dev。

包含Dev 并在Feature1中保留 - translpant,如@ oben-sonne所述 完全从Feature1 - rebase移动 如果你想要将rebase转换为Feature2,你必须在rebase

之前创建这个分支(Feature1)