
При работе с Git может возникнуть необходимость отредактировать сообщение о коммите. Существует множество причин, по которым это может понадобиться, например, исправить опечатку, удалить конфиденциальную информацию или добавить дополнительную информацию.
В этом руководстве объясняется, как изменить сообщение последних или более старых коммитов Git.
Изменение номера последнего
Команда git commit --amend позволяет изменить последнее сообщение о коммите.
Не отправлено коммит
Чтобы изменить сообщение последнего коммита, который не был отправлен в удаленный репозиторий, зафиксируйте его еще раз, используя флаг --amend .
-
Перейдите в каталог репозитория в вашем терминале.
-
Выполните следующую команду, чтобы изменить сообщение последнего коммита:
git commit --amend -m "New commit message."Команда перезаписывает последний коммит новым.
Опция
-mпозволяет вам написать новое сообщение в командной строке, не открывая сеанс редактора.
Перед изменением сообщения о коммите вы также можете добавить другие изменения, которые вы ранее забыли:
git add .git commit --amend -m "New commit message."
Выдвинутый коммит
Изменённый коммит представляет собой новую сущность с другим SHA-1. Предыдущий коммит больше не будет существовать в текущей ветке.
Как правило, следует избегать внесения изменений в уже опубликованный коммит, поскольку это может вызвать проблемы у тех, кто работал на его основе. Рекомендуется проконсультироваться с коллегами-разработчиками, прежде чем вносить изменения в опубликованный коммит.
Если вы изменили сообщение последнего отправленного коммита, вам придется принудительно отправить его.
-
Перейдите в репозиторий.
-
Измените сообщение последнего отправленного коммита:
git commit --amend -m "New commit message." -
Принудительная отправка для обновления истории удаленного репозитория:
git push --force
Изменение старого или нескольких коммитов
Если вам необходимо изменить сообщение одного или нескольких старых коммитов, вы можете использовать интерактивную git rebase для изменения одного или нескольких старых коммитов.
Команда rebase перезаписывает историю коммитов, и настоятельно не рекомендуется перебазировать коммиты, которые уже отправлены в удаленный репозиторий Git .
-
Перейдите в репозиторий, содержащий сообщение о фиксации, которое вы хотите изменить.
-
Введите
git rebase -i HEAD~N, гдеN— количество коммитов, для которых нужно выполнить перебазирование. Например, если вы хотите изменить 4-й и 5-й последние коммиты, введите:git rebase -i HEAD~5Команда отобразит последние коммиты
Xв текстовом редакторе по умолчанию :pick 43f8707f9 fix: update dependency json5 to ^2.1.1 pick cea1fb88a fix: update dependency verdaccio to ^4.3.3 pick aa540c364 fix: update dependency webpack-dev-server to ^3.8.2 pick c5e078656 chore: update dependency flow-bin to ^0.109.0 pick 11ce0ab34 fix: Fix spelling. # Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands) -
Перейдите к строкам сообщения коммита, которые вы хотите изменить, и замените
pickнаreword:reword 43f8707f9 fix: update dependency json5 to ^2.1.1 reword cea1fb88a fix: update dependency verdaccio to ^4.3.3 pick aa540c364 fix: update dependency webpack-dev-server to ^3.8.2 pick c5e078656 chore: update dependency flow-bin to ^0.109.0 pick 11ce0ab34 fix: Fix spelling. # Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands) -
Сохраните изменения и закройте редактор.
-
Для каждого выбранного коммита будет открываться новое окно текстового редактора. Измените текст коммита, сохраните файл и закройте редактор.
fix: update dependency json5 to ^2.1.1 -
Принудительно отправьте изменения в удаленный репозиторий:
git push --force
Заключение
Чтобы изменить последнее сообщение о коммите, используйте команду git commit --amend . Чтобы изменить более старые или несколько сообщений о коммитах, используйте git rebase -i HEAD~N .
Не вносите изменения в отправленные коммиты, так как это может потенциально вызвать массу проблем у ваших коллег.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
Связанные руководства