web-dev-qa-db-ja.com

最初の行だけでgitログを出力する方法は?

git logの形式をカスタマイズしようとしています。すべてのコミットが1行で表示されるようにします。各行には、コミットメッセージの最初の行のみを表示する必要があります。
I found outgit log --pretty=shortはトリックを実行する必要がありますが、私のコンピューターでは、git logと同様に完全なログを表示します(タイムスタンプ以外)。

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

Vistaでgit version 1.7.3.1.msysgit.0を使用しています。


たぶんそれは私がコミットメッセージを書く方法と関係があるのでしょう。次に例を示します。

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

そのため、指定された例では、短縮ハッシュが先頭に追加されたAdded some functionality.のみが出力されます。

275
JJD

これを試しましたか?

git log --pretty=oneline --abbrev-commit

問題は、おそらく最初の行の後に空の行がないことです。上記のコマンドは通常私にとってはうまくいきますが、空の2行目のないコミットでテストしました。私はあなたと同じ結果を得ました:メッセージ全体を1行で。

空の2行目はgitコミットメッセージの標準です。表示される動作は、おそらく意図的に実装されたものです。

コミットメッセージの最初の行は、簡単な説明です。 1行で作成できない場合は複数使用できますが、gitは最初の空行の前のすべてを「短い説明」と見なします。 onelineは短い説明全体を出力するため、3行すべてになります。

454
Gauthier

git log --onelineはあなたが望むことをしますか?

131
9000

Betterおよびeasierエイリアス。次のコードを1つのセッションに対して一度だけターミナルに貼り付けます。コードをzshrcまたはbashプロファイルに貼り付けて永続化します。

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

出力

git lg

Output変更された行

git lg -p

さらに読む
https://coderwall.com/p/euwpig/a-better-git-log
上級読解。
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/

32
atilkan

グローバルエイリアスを定義して、より快適な方法で短いログを呼び出すことができます。

git config --global alias.slog "log --pretty=oneline --abbrev-commit"

その後、git slogを使用して呼び出すことができます(有効にしている場合は、オートコンプリートでも動作します)。

23

これにより、ハッシュなしでメッセージ(件名のみ)が出力されます。

git log --pretty=format:%s
12
technophyle

コミットメッセージがなければ、ハッシュのみ:

git log --pretty=oneline | awk '{print $1}'
8
otiai10