0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YamashitaAdvent Calendar 2024

Day 11

[Git] log コマンドの復習(思ったより多機能で優秀)

Last updated at Posted at 2024-12-01

こんにちは!

普段から使ってる 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 コマンド、いかかでしたでしょうか。
思ったより多機能ですよね。

過去のコミットについて調査するケースは多いと思うので、このコマンドを使いこなせば、調査が楽になりそうです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?