Найти предыдущую точку разветвления после перебазирования ветки

У меня был репозиторий как

  A -- B -- C -- D    (master)
       
         E -- F -- G  (feature)
              
                ---H  (subfeature)

И запустил git rebase master feature результате чего

                    --E'--F'--G'  (feature)
                  /
  A -- B -- C -- D                (master)
              
                ---E--F--H        (subfeature)

После того, как я сделал этот беспорядок, я хотел бы теперь перебазировать подфайту к чему-то вроде

  A -- B -- C -- D                  (master)
                  
                   E' -- F' -- G'   (feature)
                        
                          ---H"     (subfeature)

Я полагаю, если бы я мог узнать новый коммит для F' я мог бы попытаться переназначить это право?

Всего 1 ответ


Я думаю, что ваша ветвь диаграмма состояния вещей после ребазирования неверна, и она должна выглядеть так:

feature:                 E' -- F' -- G'
                        /
master: A -- B -- C -- D
              
subfeature:    E -- F -- H

Обратите внимание, что перебазирование ветви subfeature не должно влиять на ветвь subfeature , которая должна иметь ту же цепочку коммитов, возвращающуюся к коммиту B в master .

Если вы хотите, чтобы коммит HEAD H подфункции располагался поверх коммита F' в ветви перебазированных feature , вы можете использовать git rebase --onto :

git checkout subfeature
git rebase --onto F' F

Вторая команда говорит, чтобы перебазировать ветвь subfeature так, чтобы коммит, чьим родителем стал теперь F находится поверх нового базового коммита F' .


Есть идеи?

10000