Как разделить коммит Git на несколько коммитов?

Иногда разработчику может понадобиться разделить коммит git на несколько. Причина разделения коммита обычно заключается в том, чтобы сделать историю git более читаемой или изменить порядок коммитов, чтобы избежать конфликтов. К счастью, эта операция возможна с помощью команды reset или интерактивного rebase.

Давайте приступим к этому 😎.

Подготовка

Первое, что нужно сделать, это убедиться, что в вашей рабочей директории нет никаких изменений.

Это можно сделать с помощью команды git status.

При выполнении этой команды в терминале она не должна показывать никаких файлов. Если она показывает файлы, вам нужно либо зафиксировать изменения, либо отменить их.

Как разделить последнюю фиксацию?

Чтобы разделить последний коммит, используйте команду git reset для отмены последнего коммита.

git reset HEAD~
Вход в полноэкранный режим Выход из полноэкранного режима

HEAD относится к текущей ветке.

Затем создайте различные коммиты с нужными файлами и сообщениями и отправьте их на удалённое устройство.

Но что делать, если коммит, который вы хотите разделить, не самый последний?

Легко. Используйте интерактивный rebasing.

Как разделить коммит более поздней версии?

Чтобы разделить коммит более ранней версии, вам нужно переписать историю git с помощью интерактивного rebase.

1 — Сначала найдите хэш коммита с помощью команды git reflog.

2 — Затем используйте команду git rebase с хэшем коммита:

git rebase -i HASH
Вход в полноэкранный режим Выйти из полноэкранного режима

3 — В окне редактирования rebase найдите строку с коммитом, который вы хотите разделить, и замените pick на edit.

4 — Сохраните и выйдите из окна редактирования rebase.

5 — Сбросьте состояние на предыдущий коммит:

git reset HEAD~
Войти в полноэкранный режим Выйти из полноэкранного режима

6 — Создайте различные коммиты с нужными файлами и сообщениями.

7 — Завершите rebase, введя эту команду:

git rebase --continue
Enter fullscreen mode Выйти из полноэкранного режима

Если что-то пошло не так, вы можете прервать rebase и начать заново, используя команду git rebase --abort.

Заключение

Как вы видите, разделить коммит на несколько коммитов очень просто.

Однако обратите внимание, что вам нужно будет использовать команду git push --force, если вы уже сделали push на удаленном сервере.

Вот некоторые другие руководства по Git, которые я написал для вас:

  • Как вытолкнуть пустой git-коммит?
  • Как исправить «git pre-receive hook declined»?
  • Удаление удаленного или локального тега в Git
  • Полное руководство по тегам Git
  • Как снять фиксацию изменений в git?

Оцените статью
Procodings.ru
Добавить комментарий