1

我有一个在其历史feature/branch上的不同点将develop分支合并到自身中。我想获取所有非合并提交(即,仅将最初提交到功能分支的提交)并将它们复制到新分支(基于 master),这样我就没有任何develop分支独有的提交在新的分支中。

我找到了一种列出我想要的所有提交的方法,但我不确定将它们复制到新分支的最佳方法。要列出我想要的提交,我可以运行这个:

git log feature/branch ^develop ^master --no-merges

如何将上述内容输出的提交列表(范围)复制到新分支上?我认为cherry-pick或rebase是解决方案,但在尝试了几种方法后,我无法找到正确的选择。谢谢!

4

2 回答 2

0

在 PowerShell 中

 git log feature/branch ^develop ^master --no-merges --format="%H"
   | ForEach-Object { git cherry-pick $_ }

但是,循环将在第一次冲突时有效地停止工作。

于 2013-06-20T22:02:18.470 回答
0

我建议为此使用管道级命令。对于 Unix shell:

set -e -u
git rev-list feature/branch ^develop ^master --no-merges \
    | while read rev; do git cherry-pick "$rev"; done
于 2013-06-21T10:18:48.760 回答