Как Squa sh фиксирует в ветке и перебазирует все его ветви-потомки? - PullRequest
0 голосов
/ 21 апреля 2020

До

master:  o--o
             \
branch1:      1--2--3
                     \
branch2:              4--5--6

Желательно после

master:  o--o
             \
branch1:      1'
               \
branch2:        4'--5'--6'

Это мой типичный рабочий процесс, в котором я работаю над функцией в Branch2, которая зависит от функции в branch1. Когда ветвь 1 готова для обзора, я объединяю sh в один коммит и перебазирую ветвь 2, основываясь на новом сдавленном коммите.

Однако после сдвига ветки 1 точка ветвления между ветвью 1 и веткой 2 теперь Мастер ГОЛОВА. git rebase попытается перебазировать {1..6} на 1'.

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

1 Ответ

0 голосов
/ 21 апреля 2020

Один автомат c способ? Вы можете go одним из двух способов:

  • Сказать git, какова была предыдущая позиция ветви для сжатой ветви:

git rebase --onto squashed-branch old-non-squashed-branch-or-revision feature-branch

  • Сообщая git, сколько ревизий имеется в вашей ветви функций. Скажем, у него есть 5 ревизий:

git rebase --onto squashed-branch feature-branch~5 feature-branch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...