合并两个分支而不实际合并

时间:2011-01-30 12:37:20

标签: git mercurial dvcs

这看起来是一个相当普遍和直接的要求,但我已经研究了移植扩展,rebase,导入,导出等,我还没有弄清楚。希望我错过了一些明显的东西。

我想“合并”两个分支(命名分支,具体),这样分支本身就不会消失。基本上,我想从修订版中提取更改,但手动解决cherrypick更改/冲突(使用我的合并程序)。

似乎导入,导出,移植等生成直接应用于当前工作目录的补丁和变更集。但我不希望这样......相反,我想手动确定进行哪些更改。

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

  

我想“合并”两个分支(命名分支,具体),这样分支本身就不会消失。

这是默认行为。例如,如果您look at the default branch of the mercurial source code,您会看到它会定期与stable合并。这些合并不会使defaultstable消失。合并提交只获取本地分支名称。

  

我想手动确定进行哪些更改。

听起来像移植已经这样做了。或者,您可以在自己的功能分支上进行每项更改,然后您可以完全控制哪些功能合并到分支中。

update :现在还有一个核心graft命令。

答案 1 :(得分:2)

看起来您可以使用第三个​​分支,合并分支,您可以在其中合并其他两个分支所需的变更集。
然后,您可以使用(此处为Git)组合:

git cherry-pick SHA1 --no-commit
git add --patch

要真正微调您在第三个分支中导入/合并所需的内容,如SO问题“Using GIT, how can I selectively pull / merge changes from anothers 'fork'?”中所述

答案 2 :(得分:0)

如果您使用git,请查看合并strategies