我在合并分支之间的更改时遇到问题。
我有默认的分支default
。
当我开始在新问题下工作时,我从default
制作新的分支,如#565,并与之合作。工作后,我将代码更改从#565合并到default
-它工作得很好。
我也有分支anotherbranch
-这就像生产分支,我们可以合并一些东西,如果它是在default
上测试的。
有时我需要将代码更改从#565合并到anotherbranch
。当我尝试这样做时,Mercurial给我合并#565和anotherbranch
之间的所有代码更改(因为#565是default
的子代码)。
如何合并代码更改#565?
有人建议使用graft命令,这可能就是您最终要使用的命令,但是让我退一步说,如果您稍微改进一下流程,这个问题就会消失。
一般来说,如果你在anotherbranch
分支的新分支中修复了错误,并在default
分支中添加了新功能,你将拥有两个世界的最佳效果。修复你的"生产"分支的错误,然后立即将该生产分支(称为anotherbranch
)合并回default
。
这是通常的过程,这确保了错误修复无处不在,但新功能在经过良好的测试之前不会进入生产环境。
我认为您需要的是graft命令("将更改从其他分支复制到当前分支")。
解决这个问题的最好方法是,正如Ry4an建议的那样,修改您的工作流程。您可能还需要考虑使用mq扩展来创建补丁。补丁是一个很好的方法,只应用某些更改到存储库,特别是如果你还没有准备好完全合并。