gitのlogとshowを使いこなしたい


公式:
https://git-scm.com/docs/git-log

git logすると、ずらーーーーとlogが羅列される。
その画面における、操作を習得したい。

git log

コミット間をつないで表示

git log --graph


1行で表示

git log --oneline


1行で日付も表示

git log --pretty=reference


1ファイルに関して追跡

git log --follow hoge.txt

1ファイルのみ有効
名称変更も超える(たぶんgit mvコマンド使用していないファイルは追えないのでは。)

差分も表示

git log -p
git log -u
git log -patch



マージコミットのみ/マージコミット以外表示

git log --merges
git log --no-0merges


ログ表示数の指定

git -表示数
git -n 数字
git --max-count=数字

3つとも同じ

ブランチ名の出力設定

git log --decorate=short
git log --decorate=full
git log --decorate=auto
git log --decorate=no

下の(HEAD, ..... )の部分の表示方法の設定。

C:/hoge>git log
commit f5434123123132123 (HEAD, main, origin/HEAD, origin/main)
Autor: aa
Date: bb

  hoge commit

short, autoは上の例のような感じ。
fullはrefs/heads/main, refs/remotes/origin/mainのようになる。
noneは表示されなくなる。

コミットIDの表示

git log --no-abbrev-commit

git log --onelneは省略されたものが書かれるが、このオプションを入れると全長が見れる。
defaultの設定はlog.decorate にて可能。

カスタマイズ

表示方法をカスタマイズできる。
1行

git log --pretty="%C(auto)%cs %h %s %d"


コミットメッセージの原文も表示

git log --graph --all --pretty="%Cgreen%cs %C(auto)%H%d%n  Author: %cn     Date: %aD%n%n%w(200,2,2)%B



メモ:aliasの設定
git config --global alias.lga "log --graph --all --pretty=\"%Cgreen%cs %C(auto)%H%d%n Author: %cn   Date: %aD%n%n%w(200,2,2)%B\""

文字色

自動:%C(auto)
緑:%Cgreen
リセット:%Creset


コミット日:%cs
コミッター日、UNIXタイムスタンプ:%ct
コミッター日、ISO 8601のようなフォーマット:%ci  (例:2025-02-27 17:28:32 +0900
コミッター日、厳密なISO 8601フォーマット:%cI
コミットハッシュ (短縮):%h
コミットハッシュ (logで出てくるやつ):%H

コミット者:%cn、%cN(← 二つの違い不明)
コミット者メール:%ce、%cE(← 二つの違い不明)

件名 (コミットメッセージの1行目):%s
本文(コミットメッセージ3行目以降):%b
原文(コミットメッセージ全文):%B

改行させるときにインデントさせる:%w(800,2,2)
第1引数は1行の文字数、超えると改行させる
第2引数は最初の行のインデント
第3引数はそれ以降の行のインデント

参照名、オプションのデコレート:%d (; (HEAD -> hoge-branch) とかのこと)


作成者:%an、%aN(← 二つの違い不明)
作成者メール:%ae、%aE(← 二つの違い不明)

改行:%n


git-log – Git コマンドリファレンス(日本語版)



コマンド操作

画面操作を習得したい。ほんとに。

終了する

q, Q, ZZ

動かす

1行↓:j, e
1行↑:k, y
1win↓・N行↓(一度のみ):f
1win↑・N行↑(一度のみ):b
1win↓・N行↓(以降Nまま):z
1win↑・N行↑(以降Nまま):w
半win↑:u(Nで行数指定)
半win↓:d(Nで行数指定)
Nについては、数字を入力してz, fあるいはw, bを押せばよい。
Nを入力後z, wを実行すると、以降Nが記憶される。
z, wを実行した後のf, bも記憶されている。
f, bは、一度N行のスクロールがされるが、2回目以降は1winに戻る。


探す

検索

?を入力した後に、文字列を入力し、Enter
/でもよい。
?と/は、上向きで探すか下向きで探すのいずれか(違い分からなかった)

検索して合致箇所のみ表示

&hoge

検索結果を追う

1つ上のヒット箇所に移動:n
1つ下のヒット箇所に移動:shft n


ハイライト表示/非表示

esc u


ジャンプする

一番上:<
一番下:>