如何在Git中更改工作分支的基础分支?

5

我有一个从B创建的分支C。 B是从A创建的。

A_________________________
    B |____________________ 
           C|____________________
    

我需要将代码库C的基础分支更改为A。在git中有没有这样做的方法?

我知道一个解决方案是从A创建新分支,然后挑选C上的提交。但我想知道是否有一种方法可以在现有分支上完成此操作,这样我就不需要关闭我的现有PR,而是可以强制推送编辑后的分支内容。


1
欢迎来到Git中变基(rebasing)的奇妙世界。请注意,这是一种历史重写,因此<del>这里有巨龙</del><ins>需要考虑一些事情</ins>。 - das-g
1个回答

7
我们可以在这里使用git rebase --onto
# from branch C
git rebase --onto A C~1

在简单的英语中,上述说法是将其父提交为C~1(即提交C)放置在一个新的基础A上。
注意:请使用正确的提交数替换C分支基础的父提交的1

1
从问题中无法确定每个相关分支上有多少次提交。 - das-g
关于使用 --onto 进行变基的许多有见地的见解,请参阅此博客文章:https://womanonrails.com/git-rebase-onto - michid
@michid 你知道吗,我觉得你想到了什么哈哈。 - Tim Biegeleisen
git rebase --onto A B C 帮助了我。 - SNR_BT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接