2012-01-23 33 views
0

我有这样的结构:如何樱桃选择其他合并路径?

B - C - D <- feature 
/  \ 
A-----------E <- master 
^ mytag 

B,C和d是提交特性分支路径。 A是一个共同的基础。 E提交将此功能合并回主服务器。我已经标记(自动)提交A.

无需用户干预(从脚本),无论在功能分支中有多少提交樱桃选择“mytag”为“master”作为A,E (在这种情况下)在另一个分支。

现在,如果我做的:

git checkout other  
git cherry-pick mytag..master 

它将搭载A,B,C,d和E提交。我希望它仅从主分支中提取提交,即A和E. 注意:我不想以相反的方式合并到E中。我希望它的功能进入主人。 A到E并不确定是否分支。它可能是A --- E.只需要像“..”这样的操作符,但要使用其他分支的方式。

感谢您的帮助!

另外: 第三个分支是我应该摘樱桃,应该是一个后:

F - G - H - A - E <- other 

即A和E将是精挑细选的“其他”分支。

+0

不是很清楚目标是什么。您可以提供操作完成后DAG的外观图吗? –

+0

它应该看起来像: F - G - H - A - E - - 其他 即A和E将被挑选在“其他”分支。 –

+0

如果你更新你的答案,我们可以看到你的漂亮的ASCII艺术更好:) –

回答

0

这就是答案:

call git cherry-pick -m 1 --first-parent mytag..master 
if %errorlevel% == 128 then call git cherry-pick --first-parent mytag..master 

--first父母无证选择樱桃采摘。我看到它在日志命令,它也为前者工作。它正在做我所需要的。为了遍历第一个父项,不是默认的分支。

git log --first-parent mytag..master 

是只返回一个Ë提交-m 1选项仅用于合并提交,并且未合并提交而反之亦然。所以我尝试着,如果失败 - 没有。