Как в git изменить комментарий к коммиту?
Рабочий процесс в системе контроля версий git сводится к тому, что разработчик создает от ветки develop новую ветку для реализации конкретной задачи. Принято, что в ветке каждому коммиту соответствует более-менее логически законченная единица работы или же изменения, которые в будущем может потребоваться отменить.
Однако порой в спешке под конец рабочего дня разработчик может закоммититься с подписью вроде такой «WIP» или «TMP». В статье рассмотрим, как в git переименовать коммит. При этом возможны два основных случая — коммит является последним или коммит не является последним.
Переименование последнего коммита
На следующий день разработчик приходит на работу, просматривает изменения в ветке и вспоминает, что нужно изменить комментарий к коммиту. Для этого достаточно использовать команду git commit —amend -m «Новое название коммита» .
Изменение комментария к не последнему коммиту
Допустим разработчик забыл с утра откорректировать название коммита, и в течение дня сделал ещё несколько коммитов. Тогда встаёт вопрос, как обновить комментарий, например для четвёртого коммита вглубь истории.
Итак, чтобы в git исправить комментарий такого коммита потребуется выполнить rebase в интерактивном режиме.
1. Сначала нужно посмотреть, на сколько коммитов назад находится тот коммит, которые нужно отредактировать. Для этого можно использоваться либо git log —oneline , либо консольный GUI для Git, например, tig.
Видим, что изменить комментарий нужно к коммиту «tmp», находящийся позади на четыре коммита относительно HEAD.
2. Теперь запускаем rebase в интерактивной режиме:
git rebase -i HEAD~5
3. В появившемся редакторе следует в строках коммитов изменить команду pick на reword .

Затем сохраняем файл и выходим.

4. Автоматически начнется ребейз и откроется файл редактирования коммита. Здесь необходимо ввести новую подпись к коммиту.


5. Остаётся сохранить и выйти. Теперь название коммита изменено.
Важно. Оба описанных способа приводят к изменению коммитов, а значит коммиты на сервере и в локальной ветке будут теперь отличаться. Поэтому запушить ветку так просто не получится — нужно использовать флаг —force .
Однако, если работа в ветке ведётся несколькими разработчиками одновременно, тогда такой подход неприемлем.
Метки: Метки: git
Понравилась статья? — Ставь лайк!
2 Комментарии на “Как в git изменить комментарий к коммиту?”
Однако, если работа в ветке ведётся несколькими разработчиками одновременно, тогда такой подход неприемлем. —
А какой будет приемен, в таком случае?
Как переименовать коммит git в репозитории
Если же вам нужно переименновать несколько коммитов, то вам нужно ввести git rebase -i , и в интерактивном режиме отредактировать сообщения нужных коммитов.
# 9ca69dd (HEAD -> main) add super awesome file.txt # c1a5665 (new-branch) fix bug # 86954b1 change readme # daaa7f9 add 1.txt 2.txt # 9f2880b readme # здесь указываем rebase до последнего коммита, который хотим отредактировать git rebase -i 9f2880b
Как изменить название коммита в Git?
но в «comment», по началу, писал какую-то фигню.
И хотелось бы, в некоторых случаях, этот «comment» поправить.
Можно ли это как-то сделать?
- Вопрос задан более трёх лет назад
- 36330 просмотров
Комментировать
Решения вопроса 1
git commit —amend исправляет (перезаписывает) только последний коммит. Если вам требуется изменить всю историю проекта — воспользуйтесь командой git rebase -i —root, про которую можно прочитать тут. Естественно коммиты не должны быть публичными.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Ответы на вопрос 1
Алексей Павлов @lexxpavlov
Программист, преподаватель
—amend
но только если не успели запушить
Ответ написан более трёх лет назад
Нравится 3 1 комментарий
не обязательно, git push -f
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Git
Что за непонятные html-файлы?
- 2 подписчика
- вчера
- 294 просмотра

- Git
Как запушить проект webpаck на GitHub, но при этом не толкать все зависимости?
- 1 подписчик
- 06 янв.
- 96 просмотров
Изменение сообщения о фиксации
Если сообщение о фиксации содержит нечеткую, неправильную или конфиденциальную информацию, вы можете изменить ее локально и отправить новую фиксацию с новым сообщением в GitHub. Вы также можете изменить сообщение о фиксации, чтобы добавить недостающие сведения.
Rewriting the most recent commit message
You can change the most recent commit message using the git commit —amend command.
In Git, the text of the commit message is part of the commit. Changing the commit message will change the commit ID—i.e., the SHA1 checksum that names the commit. Effectively, you are creating a new commit that replaces the old one.
Commit has not been pushed online
If the commit only exists in your local repository and has not been pushed to GitHub.com, you can amend the commit message with the git commit —amend command.
- On the command line, navigate to the repository that contains the commit you want to amend.
- Type git commit —amend and press Enter.
- In your text editor, edit the commit message, and save the commit.
- You can add a co-author by adding a trailer to the commit. For more information, see «Creating a commit with multiple authors.»
- You can create commits on behalf of your organization by adding a trailer to the commit. For more information, see «Creating a commit on behalf of an organization»
The new commit and message will appear on GitHub.com the next time you push.
You can change the default text editor for Git by changing the core.editor setting. For more information, see «Basic Client Configuration» in the Git manual.
Amending older or multiple commit messages
If you have already pushed the commit to GitHub.com, you will have to force push a commit with an amended message.
We strongly discourage force pushing, since this changes the history of your repository. If you force push, people who have already cloned your repository will have to manually fix their local history. For more information, see «Recovering from upstream rebase» in the Git manual.
Changing the message of the most recently pushed commit
- Follow the steps above to amend the commit message.
- Use the push —force-with-lease command to force push over the old commit.
git push --force-with-lease origin EXAMPLE-BRANCH
Changing the message of older or multiple commit messages
If you need to amend the message for multiple commits or an older commit, you can use interactive rebase, then force push to change the commit history.
- On the command line, navigate to the repository that contains the commit you want to amend.
- Use the git rebase -i HEAD~n command to display a list of the last n commits in your default text editor.
# Displays a list of the last 3 commits on the current branch $ git rebase -i HEAD~3
The list will look similar to the following:
pick e499d89 Delete CNAME pick 0c39034 Better README pick f7fde4a Change the commit message but push the same commit. # Rebase 9fdb3bd..f7fde4a onto 9fdb3bd # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # # These lines can be re-ordered; they are executed from top to bottom. # # If you remove a line here THAT COMMIT WILL BE LOST. # # However, if you remove everything, the rebase will be aborted. # # Note that empty commits are commented out
pick e499d89 Delete CNAME reword 0c39034 Better README reword f7fde4a Change the commit message but push the same commit.
git push --force origin EXAMPLE-BRANCH
For more information on interactive rebase, see «Interactive mode» in the Git manual.
As before, amending the commit message will result in a new commit with a new ID. However, in this case, every commit that follows the amended commit will also get a new ID because each commit also contains the id of its parent.
If you have included sensitive information in a commit message, force pushing a commit with an amended commit may not remove the original commit from GitHub. The old commit will not be a part of a subsequent clone; however, it may still be cached on GitHub and accessible via the commit ID. You must contact us through the GitHub Support portal with the old commit ID to have it purged from the remote repository.