Как я могу раздавить коммиты между А и К в один коммит Z

Если у меня есть история коммитов, как это:

A-B-C-------G-H-J-K   (master)
     \     /
      D-E-F

как я могу раздавить коммиты между А и К в один коммит Z:

A-Z-K   (master)

?

1 ответ

Решение

Сначала выполните:

git rebase -i A

Это покажет список коммитов в текстовом редакторе, начиная с B и заканчивая K.
Вам придется изменить текст pick перед коммитами C, D, E, F, H и J, чтобы s или же squash, Не меняй pick перед B или K. Обратите внимание, что коммит G должен отсутствовать, потому что это коммит слияния.

Наконец, сохраните и выйдите из редактора. Это начнет фактическую перебазировку.

Результат будет таким:

A-Z-K'                   (master)
 \
  B-C-------G-H-J-K      (no branch)
     \     /
      D-E-F

Часть, которая не находится на ветке, в конечном итоге будет удалена сборщиком мусора.

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