Как git обрабатывает коммит сквоша после фиксации фикса? - PullRequest
0 голосов
/ 17 мая 2018

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

pick abc123 commit A
f jkl567 commit B
f def345 commit C
s mno789 commit D
f xyz901 commit E

Будет ли сообщение от коммита-сквоша сохраняться при первом выбранном коммите, или оно будет делать что-то вроде сквош-коммита D в commit C, а затемв конечном итоге отбрасывает сообщение фиксации, когда commit C «исправляется» в commit B, а затем в commit A?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Git делает это по порядку, так что он будет:

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

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

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

...