Вот несколько методов, которые можно использовать для сжатия коммитов в Git:
-
Использование метода интерактивного перемещения:
- Выполните команду:
git rebase -i HEAD~n(замените «n» на количество коммитов, которые вы хотите сжать). - Откроется интерактивный редактор со списком коммитов.
- Замените слово «pick» на «squash» (или «s») для коммитов, которые вы хотите сжать.
- Сохраните и закройте редактор.
- Откроется другой редактор, позволяющий изменить сообщение о фиксации.
- Сохраните и закройте редактор, чтобы завершить сквош.
- Выполните команду:
-
Использование функции автосквоша:
- Включите функцию автосквоша в конфигурации Git:
git config --global rebase.autosquash true. - Выполните команду:
git rebase -i HEAD~n. - В интерактивном редакторе пометьте фиксации значком «fixup» или «f», чтобы автоматически сжать их.
- Сохраните и закройте редактор, чтобы завершить сквош.
- Включите функцию автосквоша в конфигурации Git:
-
Сжатие с помощью коммитов слияния:
- Создайте новую ветку из коммита, который вы хотите сжать:
git checkout -b new-branch. - Объедините ветку обратно с исходной веткой с помощью флага
--squash:git merge --squash new-branch. - Зафиксируйте изменения с помощью нового сообщения:
git commit.
- Создайте новую ветку из коммита, который вы хотите сжать: