by shigemk2

当面は技術的なことしか書かない

git logのいろは

こちらから。

git log にもいろいろとオプションがある。
ただgit logを実行させたら
author名やコミット名、メールアドレスやリビジョンなんかのセットが延々を
垂れ流されていくだけだが、必要な情報だけをピックアップしたいときはどうしたらいいのか?

'-p' 各コミットのパッチを表示する

'--stat' 各コミットで変更されたファイルの統計情報を表示する

'--shortstat' '--stat' コマンドのうち、変更/追加/削除 の行だけを表示する

'--name-only' コミット情報の後に変更されたファイルの一覧を表示する

'--name-status' 変更されたファイルと 追加/修正/削除 情報を表示する

'--abbrev-commit' SHA-1 チェックサムの全体 (40文字) ではなく最初の数文字のみ を表示する

'--relative-date' 完全な日付フォーマットではなく、相対フォーマット (“2 weeks ago”など) で日付を表示する

'--graph' ブランチやマージの歴史を、ログ出力とともにアスキーグラフで 表示する

'--pretty' コミットを別のフォーマットで表示する。オプションとして oneline, short, full, fuller そして format (独自フォーマット


また、
'-(n)' 直近の n 件のコミットのみを表示する (-10とかで、直近10のコミットを表示する)

そして--prettyのformatについてだが、以下のようにハッシュを組み合わせる事が出来る。

%H コミットのハッシュ

%h コミットのハッシュ (短縮版)

%T ツリーのハッシュ

%t ツリーのハッシュ (短縮版)

%P 親のハッシュ

%p 親のハッシュ (短縮版)

%an Author の名前

%ae Author のメールアドレス

%ad Author の日付 (--date= オプションに従った形式)

%ar Author の相対日付

%cn Committer の名前

%ce Committer のメールアドレス

%cd Committer の日付

%cr Committer の相対日付

%s 件名

例えば、

% git log --pretty=format:"%h %s" -10

で、直近10コマ、コミットハッシュの短縮版とコミット内容を
表示させる事が出来るわけです。

ちなみに--no-pagerはページスクロールを無くすコマンドオプション
(追記:正確に言うとlessなどのページャコマンドを使わないようにするオプション)だが、
当方の環境ではバグってわけわからなくなったのでやめた。