首页 > 解决方案 > 如何将提交从一个分支复制到另一个分支?

问题描述

我有一个分支,其中有一些修订。我想尝试进行一些代码更改,这些更改需要使用 histedit 重新排序和修补这些提交,但我想保留原始分支以防万一它不顺利。我怎样才能做到这一点?

例子

前:

master -> change 1 -> change 2 (branch A)

后:

master -> change 1 -> change 2 (branch A)
       -> change 1 -> change 2 (branch B)

标签: mercurial

解决方案


将提交从一个分支复制或挑选到另一个分支的集成和推荐方法是使用

hg graft -r XX YY ZZ.

其中 XX YY ZZ 等是要复制到当前签出分支的修订。默认情况下它们已提交,但您也可以使用该--no-commit标志来编辑更改。或者一个接一个地做,然后使用hg commit --amend.

与导出和导入相比,它具有使用配置的合并程序的额外好处,如果需要合并 - 但它不会是合并,因此从当前提交到您复制的提交没有建立祖先行。


推荐阅读