我有一个分支,里面有一些修订。我想尝试进行一些代码更改,这些更改需要使用histedit重新排序并修补这些提交,但是我想保留原始分支,以防其无法正常运行。我该怎么办?
之前:
master -> change 1 -> change 2 (branch A)
之后:
master -> change 1 -> change 2 (branch A)
-> change 1 -> change 2 (branch B)
答案 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