我有 2 个分支:
feature1
和 feature2
,它们基于 develop
分支。 feature1
基于旧的提交,而 feature2
是最近的。
我只想获得
feature2
的提交,这些提交未开发到 feature1
.
我按照这个
answer中的建议尝试了
git rebase --onto feature1 develop feature2
,但我看到来自开发的提交仍在应用到feature1
。我在这里错过了什么?
Update:原来是本地
develop
分支与远程develop
不是最新的。这就是该命令之前无法正常工作的原因。现在可以使用了。
git rebase --onto A B C
总是采用提交范围B..C
(即^B C
)
这意味着它应该针对从
D
(排除)到 f2
HEAD 的提交(这些提交都不应该来自 develop
,可以从 develop
访问):
f2--f2 (feature2)
/
--d--d--D--d (develop)
\
f1--f1 (feature1)
git rebase --onto feature1 develop feature2
--d--d--D--d (develop)
\
f1--f1 (feature1)
\
f2'--f2' (feature2)
早前合并到feature1
中,但没有删除feature2
分支。feature1
所以:
f1--f1--f1--f1 (feature1)
/ \
/ f2--f2--f2 (feature2)
/ /
--d--d--d--d--d (develop)
在那个配置中,试试
git rebase --onto feature1 $(git merge-base feature1 feature2) feature2