/
Вопросы и ответы
/
Git
/

Как изменить сообщение последнего коммита git

Как изменить сообщение последнего коммита git

19 дней назад

Никита Вихров

Ответы

1

Как изменить сообщение последнего коммита git

Изменить сообщение последнего коммита можно командой git commit --amend. Она создаёт новый коммит с тем же набором изменений, но с новым сообщением и «подменяет» им последний коммит в истории. Подходит, когда вы только что закоммитили и заметили опечатку, неверную формулировку или хотите привести сообщение к принятому в проекте формату.

Только изменить текст коммита

Если в последнем коммите менять ничего не нужно — только сообщение:

git commit --amend

Git откроет редактор (обычно vim или тот, что задан в core.editor) с текущим сообщением коммита. Отредактируйте текст, сохраните и закройте редактор — коммит будет перезаписан с новым сообщением.

Чтобы не открывать редактор и задать сообщение одной строкой:

git commit --amend -m "Новое сообщение коммита"

Изменить сообщение и добавить в коммит новые изменения

Если вы забыли что-то добавить в последний коммит, можно и поправить сообщение, и включить в этот же коммит новые правки:

  1. Внесите изменения в файлы.
  2. Выполните git add для нужных файлов (или git add .).
  3. Выполните:
git commit --amend --no-edit

Флаг --no-edit оставляет текущее сообщение коммита без изменений. Если нужно и изменить сообщение, и добавить файлы:

git add .
git commit --amend -m "Обновлённое сообщение с учётом новых файлов"

Либо git commit --amend без -m — откроется редактор для сообщения.

Если коммит уже отправлен в удалённый репозиторий

git commit --amend меняет историю: последний коммит заменяется новым с другим хешем. Если вы уже делали git push этого коммита, в удалённом репозитории осталась старая версия. После amend ваша локальная история и история на remote разойдутся.

Ветка только ваша

Можно перезаписать историю на сервере принудительным пушем:

git push --force-with-lease

--force-with-lease безопаснее обычного --force: push пройдёт только если на remote с момента вашего последнего fetch никто не пушил. Если кто-то успел запушить — команда откажется пушить, и вы не затёрте чужие коммиты.

Ветка общая

Если ветка общая (например, main/master или ветка, в которую пушат несколько человек), не меняйте уже запушенные коммиты. Это сломает историю у остальных. Лучше сделать новый коммит с пояснением или оставить как есть. Для отмены изменений в общей истории используйте git revert.

Краткая шпаргалка

ЗадачаКоманда
Только изменить сообщение последнего коммитаgit commit --amend или git commit --amend -m "Текст"
Добавить в последний коммит новые файлы и оставить сообщениеgit add … и git commit --amend --no-edit
Добавить файлы и изменить сообщениеgit add … и git commit --amend -m "Текст"
Обновить уже запушенный коммит (только если ветка ваша)после amend: git push --force-with-lease

19 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845