Мой обычный рабочий процесс с git - это создание новой ветви функций, выполнение некоторой работы с частыми коммитами, а затем слияние обратно в ветку разработки, когда функция работает и / или стабильна.
Как правило, когда я делаю git merge --squash feature-branch
, я получаю красивое сообщение "сдавленный коммит следующего", которое автоматически заполняется всеми сообщениями коммита из ветви Feature.
Однако, если есть какие-либо конфликты слияния (скажем, я закончил и слил другую функцию, работая над этим), я, похоже, теряю все свои сообщения коммита из ветви. Автоматически заполненное сообщение фиксации заполняет конфликты, но не сообщения фиксации. Куда делись мои сообщения о коммите? Могу ли я получить их обратно?
С git ничего не теряется. Список коммитов в ветке функций можно получить, используя:
git cherry feature-branch
Затем просто направьте это в git cat-file
:
git cherry feature-branch | cut -f2 -d' ' | git cat-file --batch
Однако вам нужно очистить вывод. Я не знаю, как автоматизировать это лучше.