如何将提交从一个分支复制到另一个分支?

时间:2019-01-10 21:10:39

标签: mercurial

我有一个分支,里面有一些修订。我想尝试进行一些代码更改,这些更改需要使用histedit重新排序并修补这些提交,但是我想保留原始分支,以防其无法正常运行。我该怎么办?

示例

之前:

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

之后:

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

2 个答案:

答案 0 :(得分:5)

使用

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

hg graft -r XX YY ZZ

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

与导出和导入相比,如果需要进行合并,则具有使用已配置的合并程序的附加好处-但这不是合并,因此从当前提交到要复制的提交都没有建立祖先行来自。

答案 1 :(得分:-1)

我知道的最好方法是先导出,然后导入所有提交,这很乏味:

hg export change1 > change1.patch
hg export change2 > change2.patch
hg up master
hg import change1.patch
hg import change2.patch