TLDR Я хочу, чтобы родительские ветви (в линейной ветви) перемещались вместе с новыми коммитами во время перебазирования.
Первоначальная настройка: несколько ветвей функций (сверху друг друга) каждый ожидает слияния с мастером
A--B--C--D <-master
\
E--F--G--H--I--J--K--L
^ ^ ^ ^
| | | feature_d
| | feature_c
| feature_b
feature_a
Проверка сделана, новый коммит M
добавляется к feature_a
, затем он объединяется в master
:
A--B--C--D--N <-master
\ /
E--F--M <- feature_a
\
G--H--I--J--K--L
^ ^ ^
| | feature_d
| feature_c
feature_b
Именно здесь я хочу выполнить ребазинг.
Желаемый результат: ребазировать feature_d
, чтобы освоить и переместить все родительские ветви вдоль:
A--B--C--D--N <-master
\ / \
E--F--M G'--H'--I'--J'--K'--L'
^ ^ ^
| | feature_d
| feature_c
feature_b
Путь Я знаю, как это сделать «вручную», то есть обычная перебазировка feature_d
с последующим перемещением указателя каждой ветви:
git checkout feature_d
git rebase master
git branch -f feature_b H'
git branch -f feature_c J'
Это требует ручного поиска и ссылки на новые коммиты по их ша. Это требует дополнительного внимания и подвержено ошибкам. Я надеюсь на автоматизированный процесс, что-то вроде этого:
git checkout feature_d
git rebase master --magic-option-move-branches-to-new-commits