假设我有一个分支widget
,是通过分支feature
并添加一些有关构建widget
的提交而完成的。
我现在希望小部件在master
中可用,而没有其余功能。是否有一种自动方法来制作仅由widget
以及有关小部件的内容组成的master
新版本?
简单地检出widget
并进行git rebase master
是行不通的,因为那样会使功能的所有其他部分随身携带。
我可以执行git rebase --interactive master
,但是这需要手动识别和删除与小部件无关的提交。有没有可以给我三个分支名称的命令,并让它自动执行此操作?
一种非常简单的方法是选择提交由master创建的新分支的方法:
git checkout -b widget-2 master
git cherry-pick feature..widget
# then to apply that to the real widget branch and get rid of the temp
git checkout -B widget widget-2
git branch -d widget-2