web-dev-qa-db-ja.com

「git commit --amend」でコミットメッセージのステップをスキップする方法

私は非常に迅速なコードコンパイルテストループを実行しており、コミットに対する変更をはるかに頻繁に修正しています。

例えば:

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

バグを修正した後、通常は同じコミットメッセージが必要です。 gitがEDITORの起動をスキップして、元のコミットメッセージを使用する方法はありますか?

77
nfm

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

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

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

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

これは、feature1からの2つのコミットを使用し、feature1への最後のコミットからのコミットメッセージを使用します。

84
Adam Dymitruk

あなたも使うことができます

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

7
user2718704
git commit --amend --reuse-message HEAD 

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

5
Vlad Isajkin

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

3
Dong Thang