将父分支更改为功能分支

Change parent branch to feature branch

我正在处理这个结构中的功能分支:

a -- b -- c -- d           <-- master
     \     \
      \     e -- f         <-- feature
       \
        g                  <-- new_parent

但是我需要将我的分支切换成这样:

a -- b -- c -- d           <-- master
      \
       g                   <-- new_parent
        \
         e -- f            <-- feature

请注意,我的 feature 分支来自 master,即 new_parentahead,因为我从 master 重新设置了分支并且 new_parent 将在 feature 分支中完成所有工作后重新设置为 master 并重新设置为 new_parent.

我对 git 不太熟悉,我不想弄乱我的 repo,我阅读了 git rebase onto 命令,但我不确定下面的命令是否会做我想做的事。

git rebase --onto new_parent feature master

你想要git rebase --onto new_parent master feature

来自 man 页面的命令格式:

git rebase [--onto <newbase>] [<upstream> [<branch>]]

new_parentnewbase 即您要将更改应用到的点。

masterupstream,即您当前开始更改的点。

feature 显然是 branch 即可以找到您的更改的分支。

足够简单:

git rebase --onto g master feature

大致翻译为:在 g 之上重新设置功能分支,丢弃所有属于 master 的修订。