Мы используем Github Desktop (ранее Github для Windows) в качестве нашего клиента Git. У нас часто бывает следующая ситуация:
Разработчик А делает кучу обновлений с прекрасными поясняющими сообщениями. Разработчик B работал в той же ветке и впоследствии делает коммит с сообщением.
Коммит разработчика Б с сообщением отображается в журнале git, и после него мы получаем фиксацию слияния от разработчика Б с автоматическим сообщением "merge branch...". Коммит слияния содержит все изменения разработчика А, но прекрасные сообщения разработчика А исчезли. Кажется, что это поведение несколько изменилось — раньше это случалось очень редко, а теперь, кажется, происходит постоянно.
(Трудно найти актуальную информацию о том, что именно делает кнопка «Синхронизировать» в Github Desktop, но я нашел ссылка, предполагающая, что раньше она выполняла git pull --rebase
, а затем изменилась. Похоже, это согласуется с тем фактом, что проблема с фиксацией слияния намного хуже, чем раньше. )
Итак, мой вопрос: есть ли способ предотвратить потерю сообщения фиксации разработчика А?
EDITED TO ADD: похоже, проблема двоякая: 1) наши разработчики не всегда делают тягу перед фиксацией, что приводит к коммитам слияния. Исходные коммиты не теряются, но не видны. 2) То, как Github Desktop отображает журнал, показывает коммиты слияния, но не показывает исходную фиксацию. Вот комментарий, который я получил по электронной почте от команды Github Desktop:
Если копнуть глубже, похоже, что коммиты скрыты из-за флага --first-parent, который мы используем при отображении истории в GitHub Desktop. В настоящее время нет способа изменить это поведение.
Вот некоторые из причин, по которым мы это делаем, которыми поделился разработчик GitHub Desktop:
«GitHub Desktop оптимизирован для GitHub Flow. В этой модели слияния почти всегда представляют собой либо (1) слияние ветки с веткой по умолчанию с помощью запроса на вытягивание, либо (2) ветку, обновляемую из ветки по умолчанию.
В первом случае наиболее полезно видеть, какие запросы на включение были объединены, а не отдельные коммиты, из которых состоит этот запрос на вытягивание. Мы думаем, что пулл-реквесты потрясающие и очень полезные для понимания истории, поэтому мы хотим расставить им приоритеты.
Во втором случае просмотр коммитов, пришедших со слиянием, только скрывает изменения в ветке. Полезнее всего видеть коммиты, уникальные для ветки».
В конечном итоге мы чувствуем, что, вероятно, Github Desktop нам не подходит — я лично перешел на GitKraken, и многие из нас больше используют командную строку.