1. ホーム
  2. git

[解決済み] git logを1行目だけ出力するには?

2022-03-23 20:59:01

質問

の書式をカスタマイズしようとしています。 git log . すべてのコミットを1行で表示させたいのですが。各行にはコミットメッセージの最初の行だけを表示する必要があります。
I 発見 その git log --pretty=short のように表示されます。 git log は(タイムスタンプの他に)あります。

さらに、試しに プレースホルダーは、マニュアルページで定義されているように . しかし、ログメッセージを短くするコマンドは見つかりませんでした。私は次の行を試してみました git log --pretty=format:'%h : %s' これは、短縮されたハッシュを表示します。 %h と完全なメッセージ %s を1行で表示します。

を使っています。 git version 1.7.3.1.msysgit.0 をVista上で実行します。


もしかしたら、私のコミットメッセージの書き方に関係があるのかもしれません。以下はその例です。

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.

ということで、この例で私が出力したいのは Added some functionality. の前に、ショートエンドハッシュを追加します。

解決方法は?

こんなことはいかがですか?

git log --oneline 

のエイリアスです。 git log --pretty=oneline --abbrev-commit と表示され、例えば、"short sha" と "short description" が表示されます。

9bee8857 Write more code
831fdd6e Write some code Second line of message

問題は、コミットメッセージの最初の行の後に空行がないことです。上のコマンドはいつもはうまくいくのですが、2行目が空行でないコミットでテストしてみました。結果はあなたと同じで、メッセージ全体が一行で表示されました。

2行目が空であることは、gitのコミットメッセージの標準です。このような挙動は、おそらく意図的に実装されたものでしょう。

コミットメッセージの最初の行は、短い説明文であることを意図しています。一行に収まらない場合は複数行にすることもできますが、git は最初の空行までを "短い説明文" とみなします。 oneline は短い説明文全体を表示するので、3行のすべてを表示します。