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.
のみが出力されます。
これを試しましたか?
git log --pretty=oneline --abbrev-commit
問題は、おそらく最初の行の後に空の行がないことです。上記のコマンドは通常私にとってはうまくいきますが、空の2行目のないコミットでテストしました。私はあなたと同じ結果を得ました:メッセージ全体を1行で。
空の2行目はgitコミットメッセージの標準です。表示される動作は、おそらく意図的に実装されたものです。
コミットメッセージの最初の行は、簡単な説明です。 1行で作成できない場合は複数使用できますが、gitは最初の空行の前のすべてを「短い説明」と見なします。 oneline
は短い説明全体を出力するため、3行すべてになります。
git log --oneline
はあなたが望むことをしますか?
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/
グローバルエイリアスを定義して、より快適な方法で短いログを呼び出すことができます。
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
その後、git slog
を使用して呼び出すことができます(有効にしている場合は、オートコンプリートでも動作します)。
これにより、ハッシュなしでメッセージ(件名のみ)が出力されます。
git log --pretty=format:%s
コミットメッセージがなければ、ハッシュのみ:
git log --pretty=oneline | awk '{print $1}'