git:挑选同级提交列表

时间:2018-09-04 15:28:23

标签: git cherry-pick git-cherry-pick

由于我的雇主的工作流程,我处于这样的情况:我有一个父提交和多个子提交,每个子提交是另一个分支的提示:

      ┌─── b <- branch1
      ├─── c <- branch2
      ├─── d <- branch3
... ─ a ── e <- branch4

我想以以下状态结束

      ┌─── b <- branch1
      ├─── c <- branch2
      ├─── d <- branch3
... ─ a ── e <- branch4
      └─── b'─ c'─ d'─ e' <- branch5

准备好的提交是克隆的地方。这些提交的顺序并不重要,并且我可以根据需要手动解析每个提交。

有没有一种方法可以自动执行此操作而不仅仅是创建一个新分支并手动每次选择一个提交?

1 个答案:

答案 0 :(得分:2)

列出包含父提交(查找子提交)的分支:

git branch --contains $a | cut -c2-

({cut从当前分支中删除星号)。

然后创建一个新分支,并选择子项提交:

child_commits=`git branch --contains $a | cut -c2-`
git checkout -b branch5
git cherry-pick $child_commits