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


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

например:

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

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

4 60

4 ответа:

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

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

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

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

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

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

--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 commit --amend --reuse-message HEAD 

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

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