Как я могу раздавить коммиты между А и К в один коммит 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
Часть, которая не находится на ветке, в конечном итоге будет удалена сборщиком мусора.