Как пропустить шаг сообщения коммита в "git commit --amend"?

Я выполняю очень быстрый цикл тестирования кода-компиляции, где я исправляю изменения своих коммитов гораздо чаще, чем нет.

Например:

# Make some changes
$ git commit -m "Added feature X"
# Compile, test
# Fix bugs
$ git commit -a --amend

Я обычно хочу одно и то же сообщение о коммите после того, как исправлю свои ошибки. Есть ли способ заставить Git пропустить зажигание моего EDITOR и просто использовать оригинальное сообщение о коммите?

4 ответа

Решение

Вы можете просто добавить --no-edit использовать последнее сообщение. Эта опция существовала с 2005 года, но только недавно была включена для --amend вариант.

Другой способ - добавить -C HEAD в команду фиксации с опцией исправления. Это позволяет вам не просто использовать сообщение текущего коммита, но вы можете указать любую другую ссылку, которая вам нравится, поэтому стоит запомнить ее.

Это особенно полезно при создании коммита из разных мест в истории и использовании одного из сообщений коммита. Например:

git checkout feature1^^ -- database/table1.sql
git checkout feature1^^^^ -- logger.py
git add -A && git commit -C feature1

который просто использовал бы 2 коммита из feature1 и использовал бы сообщение коммита от последнего коммита к feature1 - если бы это было хорошее описание.

Начиная с версии git 1.7.9 вы также можете использовать git commit --amend --no-edit

Вы также можете использовать

--reuse-message=<commit>
Take an existing commit object, and reuse the log message and the authorship 
information (including the timestamp) when creating the commit.

Которые позволяют вам использовать предыдущие сообщения коммита. Это также может быть частью скрипта или псевдонима git.

git commit --amend --reuse-message HEAD 

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

Другие вопросы по тегам