Перебазируйте и перемещайте родительские ветви - PullRequest
0 голосов
/ 01 марта 2020

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

1 Ответ

0 голосов
/ 01 марта 2020

Это решение не одна команда magi c, но оно избегает ручного именования коммитов. Перебазируйте каждую ветку поверх ее родительской ветви, начиная с самой старой:

git checkout feature_b
git rebase master

git checkout feature_c
git rebase feature_b

git checkout feature_d
git rebase feature_c

Я не ожидал, что это сработает. Вот объяснение, почему это работает: Git перебазирование пропуска одинаковых коммитов

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