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

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

Например:

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

Я обычно хочу одно и то же сообщение фиксации после исправления ошибок. Есть ли способ сделать git пропускать мой EDITOR и просто использовать исходное сообщение фиксации?

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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