gitで指定されたコミットのコミットメッセージを出力する


243

特定のコミットのコミットメッセージを出力するための配管コマンドが必要です。


3
誰もがコミットメッセージをシングルラインを印刷する方法を探してここに来たが、ハッシュは、冒頭で次のような作品に現れる気にしない場合:git show -s --oneline <commit>
waldyrious

サーバーマシンのコミットメッセージを出力する行をどこに追加すればよいですか?どのフックファイルですか?

「配管」コマンドとはどういう意味ですか?
ブライアンアッシュ

回答:


332

それは「配管」ではありませんが、あなたが望むことを正確に行います:

$ git log --format=%B -n 1 <commit>

「配管」コマンドが絶対に必要な場合(それが要件である理由がわからない場合)、次のコマンドを使用できますrev-list

$ git rev-list --format=%B --max-count=1 <commit>

ただしrev-list、コミットメッセージに加えて、commit sha(1行目)も出力されます。


4
私にとっては完全に機能しましたが%s%b%B(Linuxボックスで)代わりに使用しました
adamk '28

17
%B正しい指定子です(少なくとも、Git 1.7.2では、いつ追加されたかはわかりません)。
mipadi 2010

2
%B1.7.1以降(おそらく1.7.1.1で)に追加されました。
mipadi

1
確かに-Git 1.7.2はどうやら。ミュシャグラシアス!
Mark Probst 2010

また、次の$ git log --format=%B -n 1 <commit> | cat -コマンドを使用することもできます。これにより、コミットメッセージが表示され、commit shaは実行されません。また、「パイプ」できます。これを実際にCIスクリプトの一部として使用します。
パウロ・ムニョス

137

git showは配管コマンドgit logであり、同じフォーマットオプションがあります。

git show -s --format=%B SHA1

9
また、最初の行( "件名")だけが必要な場合は、の%s代わりに使用します%B
ntc2 2014

13
(これは、1つのエントリに制限されたリストではなく、単一のコミット操作であるため、受け入れられた「log」または「rev-list」の回答よりもこれを好みます。)
Rich

17

配管ではありませんが、.gitconfigにこれらがあります:

lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'

それが「最後のまとめ」と「最後のメッセージ」です。コミットを提供して、そのコミットの概要またはメッセージを取得できます。(私は1.7.0.5を使用しているので、%Bを持っていません。)


-n引数をパラメーターとして渡すことができます。したがって、最後のコミットのみを返す代わりに、最後の5つのコミットを返すようにすることができます。ここで必要な変更lsum = "!f(){git log -n $ 1 --pretty = format: '%s';}; f" lmsg = "!f(){git log -n $ 1 --pretty = format : '%sの%N%N%B';}; f」は、ここでそれが見つかりstackoverflow.com/questions/7005513/... あなたはちょうどこのgitのlsum 5実行
kuklei

15

これにより、指定した時間のすべてのメッセージの非常にコンパクトなリストが得られます。

git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT

4

使い始めました

git show-branch --no-name <hash>

それよりも速いようです

git show -s --format=%s <hash>

どちらも同じ結果になります


1
これは、コミットメッセージ全体ではなく、最初の行のみ(%s)を示しています(質問者が書いたように、「それ以上、それ以下」ではありません)。%Bでshow-branchを実行する方法がある場合は、それが役立ちます。
Canonical Chris

3

私はこれにショートログを使用します:

$ git shortlog master..
Username (3):
      Write something
      Add something
      Bump to 1.3.8 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.