Git рабочий процесс для избежания большого количества шума слияния в журналах

В настоящее время у нас есть рабочий процесс, где master это ветка с более долгосрочным выпуском функций и пронумерованных веток, таких как 3.0 предназначены для релизов на следующей неделе или около того.

В приведенном выше примере мы выдвигаем несколько последних изменений в 3.0 которые должны быть объединены с мастером. Если мы не будем часто сливаться, мы получим master устарел без недавних изменений. Если мы сливаемся по ходу дела, у нас есть журналы, полные слияний 3.0 в master,

Кажется, что магическая команда git-rerere решает эту проблему, но только для локальных веток тем, которые вам нужно обновить. Другими словами, это будет работать, если 3.0 был только на машине одного человека а не на публике.

Есть ли способ поддерживать мастер в актуальном состоянии без всего уродливого шума слияния? Я понимаю использование rerere?

1 ответ

rerere расшифровывается как "Повторное использование записанных разрешений". Все, что он делает, это делает ваши слияния / перебазирования легче, помня решения, которые вы приняли в прошлом Это не делает их менее шумными, когда они действительно случаются; то, что он позволяет, продлится дольше без слияния (потому что вы можете "предполетно" слить, а не выдвигать результаты).

Почему "наличие полных слияний журналов" является проблемой? Ты можешь использовать git log --no-merges показать журнал без коммитов слияния.

Ваши варианты в основном это:

  • Сливаться реже, что сделает слияния, когда они вам нужны, труднее
  • Объединяйте чаще и живите с коммитами слияний в ваших логах
  • Используйте перебазирование и решайте проблемы, связанные с публичным хранилищем
  • Используйте сбор вишни, что означает, что ветви не будут делиться историей
Другие вопросы по тегам