Изменить родительскую ветвь на функциональную ветвь - PullRequest
0 голосов
/ 02 октября 2019

Я работал над функциональной веткой в ​​этой структуре:

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_parent, потому что я перебазировал его с master, а new_parent будет перебазирован в master, как только вся работа будет выполнена в featureветвь и перебазирован на new_parent.

Я не настолько знаком с git и не хочу портить репо, я прочитал о команде git rebase onto, но я не уверен, чтоКоманда ниже сделает то, что я пытаюсь сделать.

git rebase --onto new_parent feature master

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Вы хотите git rebase --onto new_parent master feature

Формат команды со страницы man:

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

new_parent равен newbase, т.е. к точке, к которой вы хотите применить свои изменения.

master - это upstream, т. Е. Точка, с которой в данный момент начинаются ваши изменения.

feature, очевидно, branch, т. Е. Ветвь, в которой можно найти ваши изменения.

0 голосов
/ 02 октября 2019

Достаточно просто:

git rebase --onto g master feature

Что примерно соответствует: перебазировать ветвь функции поверх g, отбрасывая все ревизии, принадлежащие мастеру.

...