Как изменить сообщение фиксации Git

При работе с Git вы можете столкнуться с ситуацией, когда вам нужно отредактировать сообщение фиксации. Есть много причин, по которым вы хотели бы внести изменения, например, исправление опечатки, удаление конфиденциальной информации или добавление дополнительной информации.

В этом руководстве объясняется, как изменить сообщение самых последних или более старых коммитов Git.

Изменение самой последней фиксации

Команда git commit --amend позволяет вам изменить самое последнее сообщение фиксации.

Не нажата фиксация

Чтобы изменить сообщение о самой последней фиксации, которая не была --amend в удаленный репозиторий, повторите ее с --amend флага --amend .

  1. Перейдите в каталог репозитория в вашем терминале.

  2. Выполните следующую команду, чтобы исправить (изменить) сообщение последней фиксации:

     git commit --amend -m "New commit message."

    Что делает команда, так это перезапись самой последней фиксации новой.

    Параметр -m позволяет вам написать новое сообщение в командной строке, не открывая сеанс редактора.

Перед изменением сообщения о фиксации вы также можете добавить другие изменения, которые вы ранее забыли:

git add .git commit --amend -m "New commit message."

Нажатая фиксация

Исправленный (измененный) коммит — это новая сущность с другим SHA-1. Предыдущая фиксация больше не будет существовать в текущей ветке.

Как правило, вам следует избегать изменения уже отправленной фиксации, поскольку это может вызвать проблемы у людей, которые основывают свою работу на этой фиксации. Перед изменением принудительной фиксации рекомендуется проконсультироваться с коллегами-разработчиками.

Если вы изменили сообщение последнего отправленного коммита, вам придется принудительно отправить его.

  1. Перейдите в репозиторий.

  2. Измените сообщение последней нажатой фиксации:

     git commit --amend -m "New commit message."
  3. Принудительно нажмите, чтобы обновить историю удаленного репозитория:

     git push --force branch-name

Изменение старых или нескольких коммитов

Если вам нужно изменить сообщение более старых или нескольких коммитов, вы можете использовать интерактивную git rebase чтобы изменить один или несколько старых коммитов.

Команда rebase перезаписывает историю коммитов, и настоятельно не рекомендуется перебазировать коммиты, которые уже отправлены в удаленный репозиторий Git .

  1. Перейдите в репозиторий, содержащий сообщение фиксации, которое вы хотите изменить.

  2. Введите 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)
  3. Перейдите к строкам сообщения фиксации, которое вы хотите изменить, и замените 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)
  4. Сохраните изменения и закройте редактор.

  5. Для каждой выбранной фиксации будет открываться новое окно текстового редактора. Измените сообщение фиксации, сохраните файл и закройте редактор.

     fix: update dependency json5 to ^2.1.1
  6. Принудительно отправьте изменения в удаленный репозиторий:

     git push --force branch-name

Выводы

Чтобы изменить последнее сообщение фиксации, используйте команду git commit --amend . Чтобы изменить более старые или несколько сообщений фиксации, используйте git rebase -i HEAD~N

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

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Оставьте комментарий