0

我有这个结构:

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

B、C 和 D 提交是功能分支路径。A是一个共同的基础。此功能作为 E 提交合并回 master。我已经标记(自动)提交 A。

我希望在没有用户干预的情况下自动(来自脚本),无论功能分支中有多少次提交,在另一个分支中选择“mytag”到“master”作为 A、E(在这种情况下)。

现在,如果我这样做:

git checkout other    
git cherry-pick mytag..master

它将选择 A、B、C、D 和 E 提交。我希望它只从 master 分支中选择提交,即 A 和 E。注意:我不想以相反的方式合并到 E 中。我希望它成为大师的特色。而且 A 到 E 根本不确定那是分支。它可能是 A --- E。只是我需要像“..”这样的运算符,但要使用其他分支的方式。

我在这里先向您的帮助表示感谢!

另外:第三个分支是我应该挑选的,应该如下所示:

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

即 A 和 E 将在“其他”分支中被挑选出来。

4

1 回答 1

0

这是答案:

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

--first-parent是未记录的cherry-pick选项。我在log命令中看到了它,它也适用于前者。它正在做我需要的。要遍历第一个父项,而不是默认情况下的分支。

git log --first-parent mytag..master

仅返回AE提交。 -m 1选项仅用于合并提交,失败用于非合并提交,反之亦然。所以我尝试使用,如果失败 - 没有。

于 2012-01-24T20:10:51.117 回答