Git pull с ребазой, вызывающей чрезмерные конфликты. Как я могу исправить наш рабочий процесс?

У нас есть базовая система, настроенная для каждого клиента. База живет в своем собственном репозитории, и каждый клиент живет в своем собственном репозитории (первоначально клонированном из базы).

Цель состоит в том, чтобы иметь возможность добавлять исправления / функции ошибок в базу, которые можно распространять на клиентов по спрос.

До сих пор рабочий процесс был следующим:

  • Создание коммитов / веток тем для базовых исправлений / функций: (на базе, мастер) git commit -m "Исправить опечатку администратора"
  • Объединить эти изменения с клиентом: (на клиенте, мастер) git merge base / master . Очевидно, это включает в себя исправление любых конфликтов между базой и настройками клиента.
  • Нажмите слияние с источником клиента: (на клиенте, мастере) git push origin origin master
  • Наше соглашение состояло в том, чтобы тянуть с rebase (для держать историю читабельной). Таким образом, другой разработчик, работающий над клиентским проектом, будет (на клиенте, мастере) git pull --rebase origin master

Именно в этот момент у нас возникают значительные проблемы с этим pull / rebase. Разработчики получают конфликты при извлечении / перебазировании после слияния базы с клиентом. И это не просто несколько конфликтов, это много (для многих коммитов, которые воспроизводятся?), И часто код, который конкретный разработчик даже не коснулся. Я думаю, что это неразумно и неустойчиво.

Какое здесь лучшее решение?

Моя единственная мысль - перестать использовать rebase при извлечении и иметь дело с неаккуратными и трудно читаемыми журналами, но я бы предпочел не делать этого. сделай это. Эти клиентские проекты могут существовать годами, и я бы хотел иметь возможность еще больше разобраться в слияниях базовых систем в будущем.

5
задан Ben Crouse 20 August 2010 в 17:46
поделиться