Как объединить несколько коммитов в один?

Шаг 1: Откройте терминал или командную строку

Откройте терминал (на Mac или Linux) или командную строку (на Windows).

Шаг 2: Определите, сколько коммитов вы хотите объединить

Посмотрите историю коммитов, чтобы определить, сколько коммитов вы хотите объединить.

git log --oneline

Это покажет список ваших последних коммитов в краткой форме.

Шаг 3: Начните интерактивный rebase

Используйте команду git rebase -i (интерактивный rebase) и укажите количество коммитов, которые вы хотите объединить. Например, если вы хотите объединить последние три коммита, используйте:

git rebase -i HEAD~3

Шаг 4: Объедините коммиты

После выполнения команды git rebase -i, откроется текстовый редактор со списком коммитов. Для каждого коммита, который вы хотите объединить с предыдущим, замените pick на squash или сокращенно s (второй и последующие коммиты, которые вы хотите объединить).

pick <hash> Коммит 1
squash <hash> Коммит 2
squash <hash> Коммит 3

Сохраните файл и закройте редактор.

Шаг 5: Отредактируйте сообщение объединённого коммита

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

Шаг 6: Завершите rebase

После закрытия редактора Git завершит процесс rebase и объединит указанные коммиты в один.

Шаг 7: Сделайте push изменений (если необходимо)

Если вы уже отправили коммиты в удалённый репозиторий, вам нужно будет использовать --force для отправки объединённого коммита:

git push --force origin <ваша-ветка>

Пример:

git push --force origin main

Полезные команды

  • Просмотр истории коммитов:

    git log --oneline
    
  • Отмена интерактивного rebase (если возникли проблемы):

    git rebase --abort
    

Теперь вы знаете, как объединить несколько коммитов в один в Git 😎