Я создал фиксацию с сообщением фиксации, которое я хочу изменить. Я еще не опубликовал коммит, поэтому я могу безопасно переписать историю. Я могу найти с помощью журнала git, поэтому я знаю его хэш sha1. Как я могу быстро отредактировать коммит?
Как перефразировать коммит Git по его хэшу SHA1?
Ответы (2)
Вы можете проверить рассматриваемый коммит, изменить его сообщение и вручную перебазировать обратно в свою ветку:
$ git checkout FIRST_COMMIT_SHA
$ git commit --amend
$ git rebase HEAD THE_BRANCH_YOU_CAME_FROM
Этот псевдоним git автоматизирует этот процесс:
reword = "!f() { branch=`git symbolic-ref --short HEAD`; git checkout $1; git commit --amend; git checkout $branch; }; f"
Чтобы добавить его в свой ~/.gitconfig
:
$ git config alias.reword "!f() { branch=`git symbolic-ref --short HEAD`; git checkout $1; git commit --amend; git checkout $branch; }; f"
Затем используйте так:
$ git reword SHA1_OF_THE_COMMIT_TO_BE_REWORDED
Кредиты:
В качестве альтернативы изменение исходного сообщения фиксации может быть выполнено с помощью команды rebase и установки флага --root
. Кроме того, вам нужно будет указать интерактивный режим и использовать edit
для первого коммита, например:
git rebase -i -root
// Specify 'edit' for the first commit.
// Amend first commit message here.
git commit --amend
Подробнее о флаге --root
см. здесь. .
Кроме того, при условии, что коммит с сообщением, которое вы хотите изменить, находится в ветке, над которой вы работаете, вы также можете легко решить эту проблему с помощью интерактивной перебазировки. Просто найдите соответствующий короткий SHA-1 и укажите edit
, чтобы разрешить изменение его сообщения фиксации.