我有这样的情况:
H---I---J feature2
/
E---F---G feature1
/
A---B---C---D master
我希望让我的主人保持最新,因为在处理这些功能时它经常变化。我目前的工作方式如下:
git checkout master
git pull
git checkout feature1
git rebase master
git checkout feature2
git rebase feature1
有没有更简单的方法来完成所有这些步骤?我正在使用最新的黑貂git版本。此外,我有时甚至有6个特征分支就有这样的情况,所以如果任何解决方案可以在另一个特征分支之上扩展,那将会很棒。
答案 0 :(得分:1)
实际上,仅feature2
重新定位也重新定义feature1
,因为它会复制其提交并将其重播到master
。
然后,您可以将feature1
重置为新的HEAD提交,位于' n'在feature2
HEAD之前提交。
您可以先count the number of commits of feature2
使用:
git checkout feature2
git rev-list --count HEAD ^feature1 # memorize that in 'n'
然后rebase(不需要结账主人和拉):
git fetch
git rebase origin/master
H'---I'---J' feature2
/
master E'---F'---G'
| /
A---B---C---D--Y--Z origin/master
\
E--F--F (feature1)
git branch -f feature1 feature2~n
因此,如果我们将该场景扩展到6个分支:
在任何情况下,都需要编写脚本才能进行扩展。