Как изменить сообщения коммита в Git - AttractorSchool/ESDP-AP-10-1 GitHub Wiki
Важное предупреждение: Никогда не изменяйте сообщения (или что-либо связанное) у коммитов, которые уже были пушнуты.
Изменение сообщения последнего коммита
Если надо изменить сообщение только последнего коммита:
git commit --amend -m "New message"
Изменение сообщения более ранних коммитов (не пушнутых)
Если надо изменить сообщение коммита (коммитов), которые были сделаны ранее (но еще не были пушнуты):
git rebase -i SHA_HASH
где SHA_HASH - идентификатор родителя самого старого коммита, который необходимо изменить.
Пример
Предположим, у нас есть следующая история коммитов:
(*) - master $SHA_HASH_9 - мы сейчас находимся здесь (это наш последний коммит). у нас есть 4 коммита после последнего пушнутого (9, 8, 7 и 6)
|
(*) $SHA_HASH_8 - допустим, это один из коммитов, который нужно изменить.
|
(*) $SHA_HASH_7 - допустим, это один из коммитов, который нужно изменить.
|
(*) $SHA_HASH_6
|
(*) - origin/master $SHA_HASH_5 - это последний пушнутый коммит.
В таком случае, необходимо выполнить команду:
git rebase -i $SHA_HASH_6
После этого откроется редактор, в котором на самом верху появятся сообщения такого вида:
pick $SHA_HASH_7 Commit message for 7
pick $SHA_HASH_8 Commit message for 8
pick $SHA_HASH_9 Commit message for 9
Для тех коммитов, которые нужно изменить, нужно написать reword вместо pick, и сохранить этот файл под тем же именем, под которым он был открыт (просто сохранить). После сохранения откроется редактор, и будут представлены все сообщения commit-ов, по порядку, у которых вы написали reword.
Важное замечание при редактировании сообщения
При редактировании сообщения нужно помнить важную вещь - если ваше сообщение начинается с символа # (например, вы указываете тикет, в котором что-то делали, типа "#27 - changed something somewhere") то убедитесь, что этот символ не находится в начале строки, иначе вся строка будет обработана как комментарий. Чтобы такого не было, можно например поставить в начале строки пробел, или дописать "Ticket #27" (ну или что-то такое).
После сохранения файла с сообщением о коммите, если все нормально, сразу откроется второй файл, и т.п.
После завершения процедуры можно еще раз запустить push.