【发布时间】:2017-10-10 16:51:59
【问题描述】:
背景/场景
我有一个本地工作流程
- 我总是在“本地”分支(“master”的祖先)上提交,使用以问题编号开头的提交消息,例如“#123: Some message”。
- 我创建了功能分支,它们也是“master”的祖先。
- 然后我使用 rebase 和/或 cherry-pick 将提交从本地复制到相应的功能分支。
例如一种方法:
git checkout local
git checkout -b 123-my-feature
git rebase -i master
在交互式变基编辑器中,删除消息不以 #123 开头的所有提交。 这会留下一个功能分支 123-my-feature,它仅包含来自问题 #123 的提交。
稍后,在分支 123-my-feature 已经存在后,如果消息以 #123 开头,则本地上的后续提交也需要选择/复制到 123-my-feature 分支。这也可以通过交互式 rebase 或单独的樱桃挑选来实现。但过程很繁琐。
问题
有没有办法用cherry-pick来做到这一点,并通过提交消息自动过滤?
例如
git checkout master
git checkout -b 123-my-feature
git cherry-pick master..local --commit-message-begins-with="#123"
或者甚至是交互式的挑选,我可以手动删除不以“#123”开头的提交。
如果有另一个命令可以实现这一点,为什么不呢。不一定要挑剔。
【问题讨论】:
标签: git branch rebase cherry-pick