Найти в Дзене

Изменение последнего git-коммита

Подсказка-справочник для новичков о том, как исправить последний  git-коммит

Чтобы не создавать ещё один коммит если хочется добавить что-то ещё, можно легко изменить предыдущий, вот как это делается:

git commit --amend

Эта команда просто откроет редактор и вы сможете поменять комментарий к коммиту, можно сделать это ещё проще, без редактора:

git commit --amend -m "new comment"

Таким образом, мы можем просто поменять комментарий указав его с помощью параметра m. Но что если нам нужны ещё и изменения с файлами? Это тоже просто! Например добавляем ещё один файл, как мы делаем это обычно:

git add file.txt <- добавление файла
git commit --amend <- исправление коммита

Все, можно убедиться в том, что коммит "исправлен". Теперь осталось только отправить его в удаленный репозиторий, чтобы другие могли использовать его, делаем это как обычно:

git push

Что же делать если предыдущий коммит уже был отправлен? Тогда при попытке сделать это вы получите ошибку вида:

! [rejected] master -> master (non-fast-forward)
error: не удалось отправить некоторые ссылки в «git@github.com:name/repo.git»

Это значит что нужно переписать историю ветки, это очень просто, нужно всего лишь добавить параметр force к команде отправки коммита:

git push --force

и тогда ваш "пуш" пройдет успешно. Но делать операцию изменения коммитов лучше всего тогда, когда никто ещё не успел воспользоваться вашими изменениями, то есть не успел их получить к себе. Обычно, если вы один работаете над "своей" веткой, то так и происходит, так что можно смело делать это.