こんにちは!
普段から使ってる git log
コマンド。
今まで特にオプションを使ってなかったので、ちょっと掘り下げてみます。
自分が思ってた以上に多機能で、かなり優秀です。
使いこなした方が良さそうです。
ネタ元はこちら
基本的な使い方
git log
出力例:
% git log
commit aa99d9bbe75cca773d50f8cf77d8b25814890806 (HEAD -> TASK_MNG-2)
Author: menber1 <member1@gmail.com>
Date: Tue Oct 8 00:58:58 2024 +0900
レポート機能追加
commit 67a81df9128a78004f2ed41d85ee3d410b390eec (origin/main, main)
Author: member2 <member2@gmail.com>
Date: Mon Sep 2 21:41:51 2024 +0900
readmeを修正
commit f9ebb657506c76c77d981374e2ac241c2ffdf84b
Author: member2 <member2@gmail.com>
Date: Mon Sep 2 21:28:51 2024 +0900
チャット機能を仮実装
コミットの詳細情報(ハッシュ値、作者、日時、コミットメッセージ)が表示されます。
よく使いそうなやつ
1. コミットの要約表示
git log --oneline
出力例:
% git log --oneline
aa99d9b (HEAD -> TASK_MNG-2) レポート機能追加
67a81df (origin/main, main) readmeを修正
f9ebb65 チャット機能を仮実装
2. 変更内容の詳細表示
git log -p
出力例:
% git log -p
commit aa99d9bbe75cca773d50f8cf77d8b25814890806 (HEAD -> TASK_MNG-2)
Author: member1 <member1@gmail.com>
Date: Tue Oct 8 00:58:58 2024 +0900
レポート機能追加
diff --git a/src/Format.css b/src/Format.css
new file mode 100644
index 0000000..7babe42
--- /dev/null
+++ b/src/Format.css
@@ -0,0 +1,123 @@
+.generated-report {
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.file-upload-section {
+ margin: 20px 0;
+}
+
.....
各コミットでの具体的な変更内容(差分)が表示されます。
3. 表示件数の制限
git log -n 5 # 最新の5件のみ表示
4. 特定のファイルの履歴表示
git log filename.txt
5. マージ履歴の確認
git log --merges # マージコミットのみ表示
6. コミットメッセージの検索
git log --grep="キーワード"
出力例:
% git log --grep="修正"
commit 67a81df9128a78004f2ed41d85ee3d410b390eec (origin/main, main)
Author: member2 <member2@gmail.com>
Date: Mon Sep 2 21:41:51 2024 +0900
readmeを修正
「修正」とか「削除」などで検索するケースが多そうですね。
7. 特定のキーワードが含まれるコミットの検索
git log -S"キーワード" # 変更内容をキーワードにして検索
単なる文字列検索ではなく、その文字列の「出現回数が変化した」コミットを見つけることができます。例えば、
git log -S"API_KEY"
で検索すると、
- API_KEY が追加されたコミット
- API_KEY が更新されたコミット
- API_KEY が削除されたコミット
を見つけることができます。(--grepとは異なる)
8. 特定のキーワードが含まれるコミットの検索(正規表現)
git log -G"正規表現" # 変更内容を正規表現にして検索
-Sの正規表現版です。
その他、知っとくと良さそうなもの
1. 期間を指定して検索
git log --since="1 week ago" # 1週間前からの変更
git log --until="2023-12-31" # 指定日までの変更
2. 作者による検索
git log --author="Tanaka"
名前の一部だけでもOK。
3. グラフィカルな履歴表示
git log --graph --oneline --decorate
ブランチの分岐・マージが視覚的に確認できます。
4. 変更統計の表示
git log --stat
出力例:
% git log --stat
commit aa99d9bbe75cca773d50f8cf77d8b25814890806 (HEAD -> TASK_MNG-2)
Author: member1 <member1@gmail.com>
Date: Tue Oct 8 00:58:58 2024 +0900
レポート機能追加
src/Format.css | 123 ++++++++++++++++++++++
src/Format.tsx | 268 ++++++++++++++++++++++++++++++++++++++++++++++++
src/ReportGenerator.tsx | 103 ++++++++-----------
src/SettingModal.tsx | 249 +++++++++++++++++++++++++-------------------
src/SettingsModal.css | 239 ++++++++++++++++++++++++++----------------
src/types.ts | 11 +-
6 files changed, 743 insertions(+), 250 deletions(-)
まとめ
git log
コマンド、いかかでしたでしょうか。
思ったより多機能ですよね。
過去のコミットについて調査するケースは多いと思うので、このコマンドを使いこなせば、調査が楽になりそうです。