Parallels のサイバーマンデー 25% OFF 12月5日まで安く買う方法

git log を見やすくカスタマイズ

git log をカスタマイズ

Gitでコミットの履歴を表示するコマンドgit logはデフォルトのままだと見づらいですよね。カスタマイズしようと思ってgit help logしたところ、とても長い英語のマニュアルが表示されやがって絶望したので、カスタマイズ方法を日本語でわかりやすくまとめてみました(やさしい)。

目次

結論

git logg の完成形

上記のような表示になりました。

次のようなオプションを設定しています。

git log --pretty=format:'[%ad %Cgreen%ar%Creset] %C(yellow)%h%Creset %s %Cblue%d' --date=format:'%Y-%m-%d %H:%M' --graph

これはあくまでも私好みの設定です。あなたが求めるgit logは以下で説明するオプションを駆使してあなた自身で作ってください。

エイリアスの設定

この長いコマンドを毎回入力するのは大変なので、エイリアスを設定します。

git config --global alias.logg "log --pretty=format:'[%ad %Cgreen%ar%Creset] %C(yellow)%h%Creset %s %Cblue%d' --date=format:'%Y-%m-%d %H:%M' --graph"

以降、git loggを実行すればカスタマイズされたログを表示できます。サブコマンド名loggはお好みで他の名前にしてもOKです。

この設定は~/.gitconfigに書き込まれています。

1行で表示 (--oneline)

オプションを指定しないでgit logを実行するとこんな感じです。冗長ですねー。嫌な感じですねー。

git log の結果

--onelineオプションで1つのコミットを1行で表示できます。git log --onelineを実行しましょう。

git log --oneline の結果

かなりスッキリしました。

コミットの流れをグラフィカルに表示 (--graph)

コミットやマージの流れを視覚的にわかりやすく表示するのは--graphオプションです。--onelineと合わせてgit log --oneline --graphを実行してみましょう。

書式を指定 (--pretty)

--prettyオプションで履歴の書式を設定できます。

組み込みの書式

--pretty=<format>とすることで、組み込みの書式で履歴を表示できます。用意されている<format>は次のとおりです。

  • oneline
  • short
  • medium
  • full
  • fuller
  • reference
  • email
  • mboxrd
  • raw

それぞれのフォーマットがどのように表示されるかは下記のページでご確認ください。

書式を自由にカスタマイズ

--pretty=format:'<string>'とすることで、細かく書式を設定することができます。

<string>で使用できる主なプレースホルダは次のとおりです。

%Hコミットハッシュ
%hコミットハッシュの省略形
%anオーサー(コードを書いた人)の名前
%aeオーサーのメールアドレス
%adオーサーの日時(--dateオプションで指定した形式)
%arオーサーの日時(相対表示)
%asオーサーの日時(YYYY-MM-DD
%cnコミッター(コミットした人)の名前
%ceコミッターのメールアドレス
%cdコミッターの日時(--dateオプションで指定した形式)
%crコミッターの日時(相対表示)
%csコミッターの日時(YYYY-MM-DD
%d参照名(カッコあり)
%D参照名(カッコなし)
%sコミットメッセージのsubject(1行目)

実行例

% git log --pretty=format:'%h %s'
4b4a672 Merge branch 'develop'
bf2bf52 [update] 茶柱機能の実装
bd7759d [add] config.phpの新規作成
e59e72e [update] お茶の温度設定機能機能の実装
187b46c [fix] お茶が熱すぎるバグの修正(#1)
ab5b97f Merge branch 'develop'
ac8d0f5 [update] お茶を沸かす機能の実装
3f83042 Merge branch 'develop'
92d296e [add] index.phpの新規作成
1ee6850 [update] README.mdに説明を追加
1390361 [add] README.mdの新規作成

色をつける

文字に色をつけるためのプレースホルダもあります。

%Credこれ以降の文字を赤くする
%Cgreenこれ以降の文字を緑にする
%Cblueこれ以降の文字を青くする
%Creset文字の色をリセットする
%C(<color>)これ以降の文字を指定した色にする
指定できる色の名前は normal, black, red, green, yellow, blue, magenta, cyan, white, default
16進数カラーコード(#000000)で指定することも可能

日付の書式を指定 (--date)

--pretty%ad%cdを使用した場合の日付と時刻の書式を設定します。

組み込みの書式

--date=<format>とすることで、組み込みの書式で履歴を表示できます。用意されている<format>は次のとおりです。

  • relative 表示例: 2 days ago
  • iso 表示例: 2022-10-19 20:57:59 +0900
  • iso-strict 表示例: 2022-10-19T20:57:59+09:00
  • rfc ,default 表示例: Wed, 19 Oct 2022 20:57:59 +0900
  • short 表示例: 2022-10-19
  • raw 表示例: 1666180679
  • human 表示例: 3 days ago
  • unix 表示例: 1666180679

書式を自由にカスタマイズ

--date=format:'<string>'とすることで日時の書式をカスタマイズすることができます。

<string>部分は--date=format:'%Y-%m-%d %H:%M:%S'のように strftime のフォーマットを使うことができます。

ブランチを指定

git logは何も指定しなければ現在のブランチの履歴を表示します。ブランチを指定することで特定のブランチの履歴を表示することができます。

% git log                   #現在のブランチの履歴を表示
% git log <ブランチ名>                  #ブランチを指定
% git log <ブランチ名1> <ブランチ名2> ... #複数のブランチを指定
% git log --all                        #すべてのブランチを指定

表示の絞り込み

表示件数

% git log -n 10 #最新の10件を表示
% git log -10   #省略した記法

日付

% git log --after 3.days.ago    #3日前以降のコミットを表示
% git log --after='3 days ago'  #上記と同じ
% git log --since 3.days.ago    #上記と同じ
% git log --since='3 days ago'  #上記と同じ
% git log --before 2022-10-20   #2022-10-20以前のコミットを表示
% git log --until='2022-10-20'  #上記と同じ
$ git log --after 2022-10-01 --before 2022-10-31 #2022-10-01から2022-10-31までのコミットを表示

オーサーまたはコミッター

% git log --author masawo      #オーサー名またはそのメールアドレスが masawo を含むコミットを表示
% git log --author='masawo'    #上記と同じ
% git log --committer masawo   #コミッター名またはそのメールアドレスが masawo を含むコミットを表示
% git log --committer='masawo' #上記と同じ

コミットメッセージ

% git log --grep='foo' #コミットメッセージを検索 正規表現も使える
git log をカスタマイズ

この記事が気に入ったら
いいね または フォローしてね!

シェアしてね

コメント

コメントする

目次