Как отредактировать последний коммит в Git?

Ответ

Для редактирования последнего коммита в Git используется команда git commit --amend. Она позволяет изменить сообщение коммита, а также добавить или удалить файлы из него.

Применение:

  1. Изменение сообщения коммита:

    git commit --amend

    Эта команда откроет текстовый редактор, где можно изменить сообщение последнего коммита. Сохраните и закройте редактор, чтобы применить изменения.

  2. Добавление забытых изменений: Если вы забыли добавить файлы или внести небольшие правки в последний коммит:

    git add <файл_или_папка> # Добавляем забытые изменения
    git commit --amend        # Перезаписываем последний коммит с новыми изменениями

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

⚠️ Важно: Используйте git commit --amend только для коммитов, которые еще не были опубликованы (например, не отправлены в удаленный репозиторий). Изменение опубликованных коммитов переписывает историю и может вызвать проблемы при совместной работе, так как другим разработчикам придется разрешать конфликты истории.

Для изменения более старых или нескольких коммитов используйте интерактивный ребейз: git rebase -i HEAD~N (где N — количество коммитов, начиная с последнего, которые вы хотите просмотреть и потенциально изменить).

Ответ 18+ 🔞

А, ну ты глянь, опять про этот ваш гит, блядь! Слушай, тут такая тема есть — git commit --amend. Это как если бы ты наговорил хуйни, а потом такой: «Ой, бля, не то ляпнул, давай заново». Вот эта команда — она последний твой коммит переписывает, как будто его и не было, сука. Можно сообщение поменять, можно файлы туда-сюда подкинуть.

Как этим пользоваться, чтобы не обосраться:

  1. Сообщение кривое написал, стыдно:

    git commit --amend

    Откроется редактор, и ты там можешь своё «Исправил баг» на «Исправил пиздецкий баг, который всё ебал» поменять. Сохранил — и всё, как будто так и было, ёпта!

  2. Забыл файл добавить, рассеянный ты пидорас:

    git add забытый_файл.txt  # Опа, вспомнил про него!
    git commit --amend         # И вуаля — он теперь в прошлом коммите, а не новый лепится

    Сообщение коммита, если не трогать, останется старым. Но если хочешь, там же в редакторе и его поправить можно.

⚠️ А теперь, блядь, самое важное, слушай сюда! Эту команду — --amend — используй ТОЛЬКО для коммитов, которые ты ещё НЕ отправил на сервер, в общую помойку. То есть которые только у тебя в локалке болтаются. Потому что если ты уже залил коммит, а потом его переписал — это пиздец, это история переписывается! Твои коллеги потом будут тебя ненавидеть, как последнего мудака, потому что у них история разъедется, и придётся ебаться с конфликтами.

Если тебе надо поковыряться в более старых коммитах, не в последнем, то это уже другой цирк — интерактивный ребейз: git rebase -i HEAD~N. Где N — это на сколько коммитов назад заглянуть. Но это, блядь, уже высший пилотаж, там без бутылки не разберёшься.