[英]Git rebase from multiple branches not getting changes
在master分支中,我为项目创建了一个分支“ topicA”,该项目只是原始文件的子集,并添加了一些新文件。 为此,我创建了分支,删除了不需要的文件,添加了一些新文件并提交了。
然后,我创建了一个功能分支“ topicB”并进行了一些更改。
E--H--I topicA
/
/ K--L--M topicB
/ /
A--B--C--D--F--J--N master
我希望将“ topicB”中的更改应用于“ topicA”。 生成的树看起来像:
E--H--I topicA
/
K--L--M topicB
/
A--B--C--D--F--J--N master
我一直在尝试为此使用rebase,但一直无法获得所需的结果。
git checkout topicA
git rebase topicB
这导致合并,并且我解决了一些冲突,但是新的topicA中未出现对topicB的所有更改。
我也试过
git rebase --onto topicA master topicB
认为这将把主题B的更改应用于主题A,而master是共同的祖先,但这以我在主题B分支中的更改而告终。
在用topicB的更改为母版重新设置基础之后,我希望能够从母版中重新设置topicA的基础,以继续获取对topicA重要的文件的更改。
是否有可能从master分支,然后从也从master分支的另一个分支重新建立基础? 我使用rebase错误吗? 对于这个用例,合并会更好吗?
谢谢
更新 @VonC描述的rebase有效,现在我有了像这样的树:
E--H--I topicA
/
K--L--M--O topicB
/
A--B--C--D--F--J--N master
当我尝试再次从topicB重新设置topicA以获得新更改时,
git checkout topicA
git rebase topicB
但这是要我解决我已经解决的将主题A重新设置为基准并使它从M分支出来的冲突。如何在不处理我已经解决的所有冲突的情况下将主题A重新设置为主题B'O'?
rebase --onto
应该使用topicA
创建topicA
的确切提交:
git rebase --onto topicB D topicA
请参见该示例以获取说明。
那会得到:
E'--H'--I' topicA
/
K--L--M topicB
/
A--B--C--D--F--J--N master
然后,是的,您可以将topicA
设置为master
:
git checkout topicA
git rebase master
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.