Menu
Coddy logo textTech

Git Commit --amend

Последнее обновление

git commit --amend заменяет самый последний коммит новым, позволяя исправить его сообщение или добавить файлы, которые вы забыли проиндексировать. Он не добавляет второй коммит; он переписывает последний. Поскольку это меняет хеш коммита, амендите только те коммиты, которые вы ещё не запушили.

Попробуйте эти команды в терминальном playground - настоящая оболочка в вашем браузере, ничего устанавливать не нужно.

git commit --amend заменяет последний коммит переписанным вместо того, чтобы добавлять второй.

Синтаксис

CommandWhat it does
git commit --amendРедактирует последний коммит и его сообщение
git commit --amend -m "new message"Меняет сообщение последнего коммита прямо в командной строке
git commit --amend --no-editДобавляет проиндексированные файлы, сохраняя то же сообщение

Частые случаи

GoalCommand
Исправить опечатку в последнем сообщенииgit commit --amend -m "fixed message"
Добавить забытый файл в последний коммитgit add file, затем git commit --amend --no-edit
Амендить уже запушенный коммит (осторожно)внесите правку, затем git push --force-with-lease

Часто задаваемые вопросы о git commit --amend

Как изменить сообщение моего последнего коммита?
Выполните git commit --amend -m "new message", чтобы заменить его прямо в командной строке, или git commit --amend, чтобы открыть редактор и переписать его там. Это переписывает последний коммит с новым сообщением - не делайте этого с уже запушенным коммитом, если не готовы к force push.
Как добавить забытый файл в последний коммит?
Проиндексируйте файл командой git add <file>, затем выполните git commit --amend --no-edit. Флаг --no-edit сохраняет существующее сообщение коммита и просто вносит только что проиндексированные изменения в предыдущий коммит.
Создаёт ли git commit --amend новый коммит?
Нет - он заменяет последний коммит, а не добавляет новый. Результат выглядит как один коммит, но технически это новый коммит с новым хешем, который занимает место прежнего. Именно поэтому амендинг общей истории требует force push.
Безопасно ли амендить запушенный коммит?
Только с осторожностью. Амендинг переписывает коммит, поэтому после пуша вам понадобится git push --force-with-lease, что может нарушить работу всех, кто уже стянул оригинал. В общей ветке предпочтите новый коммит или git revert вместо аменда.
Могу ли я потренироваться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить git commit --amend в настоящей оболочке в вашем браузере - ничего устанавливать не нужно. Бесплатный интерактивный курс Git от Coddy также пошагово разбирает исправление коммитов.
Coddy programming languages illustration

Изучайте Git с Coddy

НАЧАТЬ