Как автоматически объединять ветви после изменения общего родителя - PullRequest
0 голосов
/ 02 апреля 2020

Здравствуйте, разработчики, управляемые переполнением стека,

при попытке сохранить малый размер MR, один из подходов заключается в создании ветви для небольших объектов, которая всегда основывается на небольшой ветви prev ios. Итак, давайте создадим ветвь A, зафиксируем некоторые вещи, затем создадим ветвь B, зафиксируем некоторые вещи, затем перейдем сюда C и зафиксируем там другие вещи. После некоторых комментариев к вашей ветке A запрос на слияние, вы хотели бы обновить A, а также B и C, потому что все они основаны на этом.

Так, например, что-то вроде этого

                     B4 --- o
                    /
              B3---
             /
        B2---
       / 
---B1---o---o---o

может привести к такому сценарию

                 B4---o---o
                /        /
              B3-----o--
             /      /
        B2--------o
       /         /
---B1---o---o---o

Таким образом, вопрос будет, если есть git команда или какая-то автоматизация, которая делает это одновременно.

Обновление: в настоящее время я буду выполнять итерацию по массиву [B1, B2, B3, B4] и делать что-то вроде

псевдокод

for (i=0;i<ar.length;i++) {
   if (ar[i-1]) {  
      git checkout ar[i] && git merge ar[i-1]
    }
}

1 Ответ

1 голос
/ 02 апреля 2020

Не встроен, но вы можете использовать скрипт Bash следующим образом:

#!/bin/bash
trap "exit 1" ERR

while [ $# -gt 1 ]; do
    git checkout $2
    git merge $1
    shift
done

При вызове с вашими ветвями в качестве параметров (например, ./git-merge-consecutive.sh B1 B2 B3 B4), скрипт выполнит следующую последовательность: git команды:

git оформить заказ B2
git оформить слияние B1
git оформить заказ B3
git оформить слияние B2
git оформить заказ B4
git слияние B3

Обратите внимание, что из-за trap "exit 1" ERR сценарий будет прерван в случае сбоя какой-либо команды.

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