Задать вопрос
@JustMoose
Программист. Радиолюбитель. Прокрастинатор ;)

Как распараллелить git merge?

Всем привет.
У нас есть git-овая репа, в репе много файлов.
Изредка приходится доливать туда изменения "снаружи".
В итоге получается, что при выполнении git merge origin/branch_with_new_code_snaruji образуется дофигища конфликтов.
Приходится в одиночку на локальной тачке резолвить все конфликты и потом делать git push.

Вопрос: есть ли в гите какой-нибудь хитрый способ распараллелить этот процесс?
Может можно запушить код вместе со всеми конфликтами, а потом "каждый хватает файл, резолвит конфликт, пушит"?
Или какие-то другие неочевидные способы?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
У вас есть целевая ветка development, и несколько веток фичей: feature_1, feature_2.

1) после (почти?) каждого принятого пул-реквеста все программисты мержат development в ветку своей фичи
2) ветка фичи по возможности делается минимальной и заливается на development как можно быстрее

Так конфликтов будет максимум на 5 минут и не будет необходимости параллелить мердж. А при любой непонятке вы зовете человека, который сделал успешный пул-реквест и вдвоем разбираетесь в этом.
Судя по тому, что вы в девелопмент стараетесь запушить, а не выходит - вы не делаете мердж с девелопментом каждый день и собираете все конфликты, откладывая их на последний день.
Ответ написан
@JustMoose Автор вопроса
Программист. Радиолюбитель. Прокрастинатор ;)
Пожалуй отвечу сам себе.
Коллеги в итоге запилили питонячую тулзу для этого.
После мёржа все конфликты записываются в отдельный файлик, а сами конфликтные файлы пушатся в репу.
Потом все дружно достают конфликты из списка, переводят конфликтный файл в удобоваримое (для mergetool) нечто и резолвят.
Профит.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы