我有一个feature/branch
,它在各个点上将develop
分支合并到其历史记录中。我想采取所有非合并提交(即只有最初在特征分支上提交的提交)并将它们复制到一个新的分支(基于master),这样我就没有任何特有的提交{ {1}}在新分支中分支。
我找到了列出我想要的所有提交的方法,但我不确定将它们复制到新分支的最佳方法。要列出我想要的提交,我可以运行:
develop
如何将上面输出的提交列表(范围)复制到新分支上?我认为樱桃挑选或反射是解决方案,但在尝试了几种方法后,我无法找到正确的选择。谢谢!
答案 0 :(得分:0)
在PowerShell中
git log feature/branch ^develop ^master --no-merges --format="%H"
| ForEach-Object { git cherry-pick $_ }
然而,循环将在第一次冲突中有效地停止工作。
答案 1 :(得分:0)
我建议使用plumbing-level命令。对于Unix shell:
set -e -u
git rev-list feature/branch ^develop ^master --no-merges \
| while read rev; do git cherry-pick "$rev"; done