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

Изменение сообщения самого последнего коммита Git
Если вы уже выполнили коммит и допустили ошибку в сообщении журнала коммита, вы можете выполнить git commit --amend, чтобы изменить сообщение предыдущего коммита, не меняя его снимок. Вы можете передать новое сообщение из командной строки, не получая приглашения на открытие редактора, с помощью параметра -m.
git commit --amend
git commit --amend -m "an updated commit message"Изменение зафиксированных файлов
Представим, что вы изменили несколько файлов, которые хотите зафиксировать в одном снимке, но при первом добавлении забыли добавить один из файлов. Вы можете решить эту проблему, если добавите другой файл в индекс и выполните коммит с помощью флага --amend. Добавьте флаг --no-edit, чтобы изменить коммит, не меняя сообщение коммита. В результате неправильный коммит будет заменён правильным, и рабочий процесс будет выглядеть так:
git commit --amend --no-edit
# Modify project.py and text.py
git add project.py
git commit
# You forgot to add the changes from text.py
git add text.py
git commit --amend --no-editНе изменяйте публичные коммиты
На самом деле изменённые коммиты являются новыми, и после изменения коммита предыдущий коммит не будет удалён из текущей ветки. Поэтому никогда не следует изменять коммит, над которым работают другие участники команды, поскольку это вызовет множество проблем при совместной работе. Как видите, последствия такие же, как и в случае сброса публичного снимка.
Practice
Какие утверждения о команде `git commit --amend` верны согласно руководству W3Docs по Git?