Сквошинг (squashing) в Git используется для склеивания нескольких коммитов в один, целостный коммит. 1
Принцип работы заключается в том, что выбирается базовый коммит, и в него сливаются все изменения из следующих коммитов. 5 В результате все изменения, сделанные в нескольких коммитах, собираются в одном — базовом коммите. 5
Для сквошинга можно использовать, например, интерактивное перебазирование. 14 С его помощью можно изменять, переупорядочивать, комбинировать и удалять коммиты перед применением их к ветви. 1
Ещё один метод — использование команды git reset. 3 Он предполагает сброс на предыдущий коммит и создание нового, единого коммита со всеми изменениями. 3 Для этого нужно выполнить команду git reset, чтобы переместить HEAD назад к желаемому коммиту: git reset --soft HEAD~N
(где N — количество коммитов, которые нужно сквошить). 3 Затем зафиксировать все изменения: git add
. 3 После этого создать новый сквошированный коммит: git commit -m 'New squashed commit message'
. 3 В конце принудительно отправить изменения: git push --force
. 3
Важно помнить, что сквошинг изменяет историю проекта, поэтому не рекомендуется применять его к ветвям, которые доступны другим разработчикам. 2