Git рабочий процесс для избежания большого количества шума слияния в журналах
В настоящее время у нас есть рабочий процесс, где master
это ветка с более долгосрочным выпуском функций и пронумерованных веток, таких как 3.0
предназначены для релизов на следующей неделе или около того.
В приведенном выше примере мы выдвигаем несколько последних изменений в 3.0
которые должны быть объединены с мастером. Если мы не будем часто сливаться, мы получим master
устарел без недавних изменений. Если мы сливаемся по ходу дела, у нас есть журналы, полные слияний 3.0
в master
,
Кажется, что магическая команда git-rerere решает эту проблему, но только для локальных веток тем, которые вам нужно обновить. Другими словами, это будет работать, если 3.0
был только на машине одного человека а не на публике.
Есть ли способ поддерживать мастер в актуальном состоянии без всего уродливого шума слияния? Я понимаю использование rerere?
1 ответ
rerere
расшифровывается как "Повторное использование записанных разрешений". Все, что он делает, это делает ваши слияния / перебазирования легче, помня решения, которые вы приняли в прошлом Это не делает их менее шумными, когда они действительно случаются; то, что он позволяет, продлится дольше без слияния (потому что вы можете "предполетно" слить, а не выдвигать результаты).
Почему "наличие полных слияний журналов" является проблемой? Ты можешь использовать git log --no-merges
показать журнал без коммитов слияния.
Ваши варианты в основном это:
- Сливаться реже, что сделает слияния, когда они вам нужны, труднее
- Объединяйте чаще и живите с коммитами слияний в ваших логах
- Используйте перебазирование и решайте проблемы, связанные с публичным хранилищем
- Используйте сбор вишни, что означает, что ветви не будут делиться историей