Как изменить сообщение последнего коммита git
19 дней назад
Никита Вихров
Ответы
Как изменить сообщение последнего коммита git
Изменить сообщение последнего коммита можно командой git commit --amend. Она создаёт новый коммит с тем же набором изменений, но с новым сообщением и «подменяет» им последний коммит в истории. Подходит, когда вы только что закоммитили и заметили опечатку, неверную формулировку или хотите привести сообщение к принятому в проекте формату.
Только изменить текст коммита
Если в последнем коммите менять ничего не нужно — только сообщение:
Git откроет редактор (обычно vim или тот, что задан в core.editor) с текущим сообщением коммита. Отредактируйте текст, сохраните и закройте редактор — коммит будет перезаписан с новым сообщением.
Чтобы не открывать редактор и задать сообщение одной строкой:
Изменить сообщение и добавить в коммит новые изменения
Если вы забыли что-то добавить в последний коммит, можно и поправить сообщение, и включить в этот же коммит новые правки:
- Внесите изменения в файлы.
- Выполните
git addдля нужных файлов (илиgit add .). - Выполните:
Флаг --no-edit оставляет текущее сообщение коммита без изменений. Если нужно и изменить сообщение, и добавить файлы:
Либо git commit --amend без -m — откроется редактор для сообщения.
Если коммит уже отправлен в удалённый репозиторий
git commit --amend меняет историю: последний коммит заменяется новым с другим хешем. Если вы уже делали git push этого коммита, в удалённом репозитории осталась старая версия. После amend ваша локальная история и история на remote разойдутся.
Ветка только ваша
Можно перезаписать историю на сервере принудительным пушем:
--force-with-lease безопаснее обычного --force: push пройдёт только если на remote с момента вашего последнего fetch никто не пушил. Если кто-то успел запушить — команда откажется пушить, и вы не затёрте чужие коммиты.
Ветка общая
Если ветка общая (например, main/master или ветка, в которую пушат несколько человек), не меняйте уже запушенные коммиты. Это сломает историю у остальных. Лучше сделать новый коммит с пояснением или оставить как есть. Для отмены изменений в общей истории используйте git revert.
Краткая шпаргалка
19 дней назад
Никита Вихров
Похожие вопросы