Как git обрабатывает коммит сквоша после фиксации фикса?

Я работаю с веткой с довольно большим количеством коммитов и хотел бы сделать интерактив rebase чтобы объединить его в меньшее количество коммитов до слияния с master, Чтобы избежать странных конфликтов, я стараюсь поддерживать определенный порядок коммитов, где это возможно, но иногда требуется сообщение коммита, которое будет поддерживаться в длинной строке fixups. Другими словами, у меня есть что-то вроде:

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 делает это по порядку, так что будет:

  1. Исправьте с помощью B, сохраняя сообщение о коммите от A
  2. Исправьте новый коммит с помощью C, сохранив сообщение коммита от A
  3. Сквош с D, с просьбой отредактировать сообщение от A+D
  4. Исправьте с помощью E, так что сохраните версию, которую вы сохранили в 3.)

Исходя из моего опыта, вы получите редактор сообщения коммита после того, как коммит сквоша будет завершен. По умолчанию в редакторе содержатся все сообщения о коммитах из всех коммитов. Затем вы можете отредактировать сообщение, как считаете нужным.

TL; DR Как бы git вычислял предложенное сообщение о коммите, вам будет предоставлена ​​возможность отредактировать его до того, как коммит будет окончательно зафиксирован.

Другие вопросы по тегам