仅将更改从新分支应用到旧分支

问题描述 投票:0回答:1

我有 2 个分支:

feature1
feature2
,它们基于
develop
分支。
feature1
基于旧的提交,而
feature2
是最近的。

我只想获得

feature2
的提交,这些提交未开发到
feature1
.

我按照这个

answer
中的建议尝试了git rebase --onto feature1 develop feature2,但我看到来自开发的提交仍在应用到
feature1
。我在这里错过了什么?

Update:原来是本地

develop
分支与远程
develop
不是最新的。这就是该命令之前无法正常工作的原因。现在可以使用了。

git git-branch rebasing
1个回答
0
投票

正如knittl评论中提到的那样,

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
© www.soinside.com 2019 - 2024. All rights reserved.