Продвинутое редактирование истории Git: исправление коммитов и интерактивный rebase

Погрузитесь в изучение мощных команд Git, таких как `git commit --amend` и `git rebase -i`, чтобы улучшать сообщения коммитов, объединять их и наводить порядок в истории вашего проекта.

Редактирование истории Git — это навык, который превращает хаотичный процесс разработки в чистую и понятную историю изменений. В этой статье мы рассмотрим, как использовать git commit --amend и git rebase -i для профессионального управления вашими коммитами.

Исправление последнего коммита: git commit --amend

Если вы забыли добавить файл или допустили опечатку в сообщении последнего коммита, git commit --amend — ваш лучший друг.

# Добавление забытых файлов в последний коммит
git add .
git commit --amend --no-edit

Флаг --no-edit позволяет обновить коммит, не меняя его исходное сообщение.

Интерактивный Rebase: git rebase -i

Для более сложных задач, таких как объединение нескольких коммитов (squash) или изменение порядка, используется интерактивный rebase:

# Редактирование последних 3 коммитов
git rebase -i HEAD~3

В открывшемся редакторе вы можете выбрать действие для каждого коммита:

  • pick: оставить коммит как есть.
  • squash: объединить коммит с предыдущим.
  • reword: изменить только сообщение коммита.

Важное предостережение

Никогда не делайте rebase коммитов, которые уже были отправлены в публичный репозиторий (push), так как это может создать проблемы для других участников команды.