假设我有一个分支widget,它是通过从feature分支并添加几个关于构建widget的提交而生成的。
现在,我希望这个小部件可以在master中使用,而不需要其他特性。有没有一种自动的方法来制作一个新版本的widget,它只由master加上关于小部件的东西组成?
简单地做签出widget和做git rebase master是行不通的,因为这会带来特性的所有其他部分。
我可以执行git rebase --interactive master,但这需要手动识别和删除与小部件无关的提交。有没有命令可以让我给这三个分支命名,并让它自动这么做?
发布于 2019-11-07 18:35:54
一种非常简单的方法是从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但我们完全可以跳过临时分支,现在我想到了它:
git checkout --detach master
git cherry-pick feature..widget
git checkout -B widget HEAD发布于 2019-11-07 22:40:26
您拥有以下内容:
0-0-0-0-0-0 <--master
|-0-0-0-0-0-0 <--feature
|-0-0-0-0-0 <--widget你想把它变成这样:
0-0-0-0-0-0 <--master
| |-0-0-0-0-0 <--widget
|-0-0-0-0-0-0 <--featuregit rebase命令非常灵活。您可以使用带有--onto选项的git rebase来执行此操作:
git rebase --onto master feature widgethttps://stackoverflow.com/questions/58746736
复制相似问题