Как git обрабатывает коммит сквоша после фиксации фикса?
Я работаю с веткой с довольно большим количеством коммитов и хотел бы сделать интерактив rebase
чтобы объединить его в меньшее количество коммитов до слияния с master
, Чтобы избежать странных конфликтов, я стараюсь поддерживать определенный порядок коммитов, где это возможно, но иногда требуется сообщение коммита, которое будет поддерживаться в длинной строке fixup
s. Другими словами, у меня есть что-то вроде:
pick abc123 commit A
f jkl567 commit B
f def345 commit C
s mno789 commit D
f xyz901 commit E
Будет ли сообщение от коммита сквоша все еще сохраняться при первом выбранном коммите или он будет делать что-то вроде сквоша 'commit D' в commit C
а затем в конечном итоге сбросив сообщение о фиксации, когда commit C
получает "исправить" в commit B
а затем в commit A
?
2 ответа
Git делает это по порядку, так что будет:
- Исправьте с помощью B, сохраняя сообщение о коммите от A
- Исправьте новый коммит с помощью C, сохранив сообщение коммита от A
- Сквош с D, с просьбой отредактировать сообщение от A+D
- Исправьте с помощью E, так что сохраните версию, которую вы сохранили в 3.)
Исходя из моего опыта, вы получите редактор сообщения коммита после того, как коммит сквоша будет завершен. По умолчанию в редакторе содержатся все сообщения о коммитах из всех коммитов. Затем вы можете отредактировать сообщение, как считаете нужным.
TL; DR Как бы git вычислял предложенное сообщение о коммите, вам будет предоставлена возможность отредактировать его до того, как коммит будет окончательно зафиксирован.