84

I'm running a very rapid code-compile-test loop where I am amending changes to my commits far more often than not.

For example:

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

I usually want the same commit message after I fix my bugs. Is there a way to make git skip firing up my EDITOR and just use the original commit message?

4

4 に答える 4

107

--no-edit最後のメッセージを使用するために追加することができます。このオプションは2005年から存在していましたが、このオプションが有効になったのはごく最近の--amendことです。

もう1つの方法は-C HEAD、修正オプションを使用してcommitコマンドに追加することです。これにより、現在のコミットのメッセージを使用できるだけでなく、他の任意の参照を指定できるため、覚えておく価値があります。

これは、履歴のさまざまな場所からコミットを作成し、それらのコミットのメッセージの1つを使用する場合に特に便利です。例えば:

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

これは、feature1からの2つのコミットを使用し、feature1への最後のコミットからのコミットメッセージを使用します-それが適切な説明である場合。

于 2011-03-15T04:09:17.203 に答える
10

使用することもできます

--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エイリアスの一部にすることもできます。

于 2013-08-26T18:55:09.533 に答える
10
git commit --amend --reuse-message HEAD 

最後のコミットからのメッセージを再利用します

于 2018-02-07T14:52:16.400 に答える
6

git 1.7.9バージョン以降、使用することもできます git commit --amend --no-edit

于 2018-09-11T08:08:33.057 に答える