【Git】git log のオプションは何がある?初心者向けに実務で役立つ使い方をわかりやすく解説
はじめに
Gitを使って開発をしていると、コミット履歴を確認することはよくありますね。
何度もコミットを積み重ねると、いつ・誰が・どんな内容で変更したのかを把握するのが難しくなりがちです。
ここで活躍してくれるのが git log コマンドです。
このコマンドは単に履歴を表示するだけでなく、多彩なオプションを活用して必要な情報を効率よく確認することができます。
たとえば、特定のファイルがいつ変更されたかを調べたり、ブランチのグラフ構造を視覚的に表示したり、作者や日付で絞り込んだりと、多くの場面で役に立ちます。
しかし、オプションの数が多いので、どこから手を付ければいいか戸惑う方もいるかもしれません。
本記事では、初心者でも理解しやすいように、よく使われるオプションを具体例とともに紹介していきます。
この記事を読むとわかること
- git log コマンドの基本的な使い方
- 代表的なオプションの意味と活用シーン
- 実務でどんな場面で役立つかの具体例
- 効果的にコミット履歴を可視化・管理する方法
git log の概要と基本的な使い方
Gitで管理されたリポジトリのコミット履歴を一覧表示するコマンドが git log です。
何もオプションを付けずに git log
と入力すると、最新のコミットから順番に、下記のような情報が表示されます。
- コミットID(SHA-1ハッシュ)
- コミットした人の名前(Author)
- コミット日時(Date)
- コミットメッセージ
以下は、実際のイメージです。
git log
commit 2b7e3d6ab80aeb5b7f2df1c8ccf3c9165ca2a7b0 Author: John Doe <john@example.com> Date: Thu Feb 20 14:32:16 2025 +0900 Fix layout issue on main page commit 726b29a2edf95a43e967b5ec32b317c1ae1a4c2b Author: Jane Smith <jane@example.com> Date: Wed Feb 19 10:12:05 2025 +0900 Add user authentication feature
こうした出力が延々と続きますが、たくさんの履歴から必要な情報だけを効率よく拾いたい場面では、オプションが大きな威力を発揮します。
実務での利用例
チームで開発していると、「誰が特定の機能を実装したのか」「いつ重要な変更が加えられたのか」を素早く確認したいことが多いでしょう。
git log
コマンドがあると、変更履歴を調べるためにリポジトリ内をあちこち探し回る必要が減り、コードレビューの際や不具合調査の際に大いに役立ちます。
よく使われる git log オプション一覧
ここからは、git log でよく使われるオプションをいくつかピックアップして紹介します。
一口に「履歴表示」と言っても、フォーマットを変更したり、特定の条件で絞り込んだりと柔軟に利用できます。
オプション | 概要 |
---|---|
--oneline | 1行に簡潔にコミット情報を表示 |
--graph | ブランチ構造をテキストのグラフで表示 |
-p (または --patch ) | 各コミットの変更差分を表示 |
--stat | コミットごとに変更されたファイルと差分行数を表示 |
--author="名前" | 特定の作者のコミットだけを表示 |
--since / --until | 日時を指定して絞り込む |
--pretty=format:"..." | コミットの表示形式を指定 |
上記はよく見かけるオプションの一部です。
次の見出しで、それぞれの使い方をもう少し詳しく見ていきましょう。
git log --oneline で履歴を1行表示する
大量にコミットがあると、デフォルトの表示だと画面が長くなりすぎて見づらいこともあります。
そんなときに便利なのが --oneline
オプションです。
git log --oneline
実行すると、コミットハッシュの先頭7文字程度とコミットメッセージが1行にまとめられて表示されます。
2b7e3d6 Fix layout issue on main page
726b29a Add user authentication feature
f71accb Initial commit
...
実務での利用例
コミットメッセージに一通りの概要が書かれていれば、素早くコミットを探せます。
「とりあえず履歴をざっと眺めたい」というシーンで重宝しますね。
git log --graph でブランチ構造を可視化する
Gitではブランチを使った開発が当たり前になっています。
しかし、どのブランチがどこで分岐し、どこでマージされたかを文字情報だけで追うのはややこしいものです。
そこで --graph
オプションを使うと、テキストベースですがブランチ構造を縦に並べたグラフで確認できます。
git log --graph --oneline
実行すると、以下のようにグラフが左端に表示され、コミットの流れがひと目でわかるようになります。
* 2b7e3d6 Fix layout issue on main page
|\
| * 726b29a Add user authentication feature
|/
* f71accb Initial commit
実務での利用例
複数人でブランチを切って並行開発すると、どこでブランチを作成して、どこで統合したのか把握しづらいことがあります。
--graph
を使えば、ブランチの分岐とマージのタイミングが可視化されるので、チーム内でのコミュニケーションにも役立つでしょう。
git log -p(--patch) で差分を表示する
コミット内容の詳細な差分をすぐに確認したい場合は、-p
(または --patch
) オプションが便利です。
各コミットがどのファイルのどの行を変更したかが表示されるので、改修内容を深く追うときに向いています。
git log -p
commit 2b7e3d6ab80aeb5b7f2df1c8ccf3c9165ca2a7b0
Author: John Doe <john@example.com>
Date: Thu Feb 20 14:32:16 2025 +0900
Fix layout issue on main page
diff --git a/src/App.js b/src/App.js
index 1c4b18a..e56f9ae 100644
--- a/src/App.js
+++ b/src/App.js
@@ -12,7 +12,7 @@ function App() {
return (
<div className="App">
- <Header />
+ <Header updatedLayout={true} />
<MainContent />
<Footer />
</div>
コミットごとに差分が連続して表示されるため、修正が多い場合はかなりのボリュームになります。
実務での利用例
レビューや不具合調査で、「このコミットで具体的に何が変わったのか」を正確に把握したいときに便利です。
差分を確認しておけば、意図せずに余計なファイルを変更していないかをチェックできます。
git log --stat で変更ファイル数や行数を確認する
大まかにどのファイルがどれくらい編集されたかを知りたい場合は、--stat
オプションがおすすめです。
コミットごとに変更されたファイルと、その差分行数が一覧表示されるため、修正の影響範囲がざっくり把握できます。
git log --stat
commit 2b7e3d6ab80aeb5b7f2df1c8ccf3c9165ca2a7b0
Author: John Doe <john@example.com>
Date: Thu Feb 20 14:32:16 2025 +0900
Fix layout issue on main page
src/App.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
commit 726b29a2edf95a43e967b5ec32b317c1ae1a4c2b
Author: Jane Smith <jane@example.com>
Date: Wed Feb 19 10:12:05 2025 +0900
Add user authentication feature
src/Auth.js | 15 +++++++++++++++
src/App.js | 2 +-
2 files changed, 16 insertions(+), 1 deletion(-)
実務での利用例
「今回は大きな変更を行ったのか?」「どのファイルに手が入ったのか?」といった観点で履歴を追うときに有用です。
機能追加やリファクタリングの規模感を素早く把握しやすくなります。
作者や日時で絞り込む
履歴が膨大になると、特定のコミットだけをピンポイントで探すケースも増えます。
そんなときは、作者名や日時を指定して検索すると効率的です。
--author オプション
作者名(またはメールアドレス)にマッチするコミットだけを表示します。
git log --author="Jane Smith"
これで、"Jane Smith" が行ったコミットのみを一覧表示できます。
より広いマッチングが必要なときは部分一致でもOKです。
--since / --until オプション
--since
である日時以降、--until
である日時以前のコミットを検索できます。
以下は 2025年2月1日 以降のコミットを表示する例です。
git log --since="2025-02-01"
実務で、「2月以降に投入した修正だけ確認したい」といった場合に有用です。
git log --pretty=format で出力形式をカスタマイズ
デフォルトの出力形式では物足りない場合や、スクリプトでログを処理したい場合は --pretty=format:"..."
オプションを使うと便利です。
コミットハッシュや作者名、日付などを自由に配置し、自分好みのフォーマットで表示できます。
代表的なフォーマット指定子には次のようなものがあります。
%H
: フルコミットハッシュ%h
: 短縮コミットハッシュ%an
: 作者名%ae
: 作者メールアドレス%ad
: 日付%s
: コミットメッセージ
たとえば、下記のようにすると「短縮ハッシュ」「作者名」「日付」「メッセージ」を縦並びで表示できます。
git log --pretty=format:"%h | %an | %ad | %s"
2b7e3d6 | John Doe | Thu Feb 20 14:32:16 2025 +0900 | Fix layout issue on main page
726b29a | Jane Smith | Wed Feb 19 10:12:05 2025 +0900 | Add user authentication feature
f71accb | John Doe | Tue Feb 18 09:45:22 2025 +0900 | Initial commit
実務での利用例
コミット情報をツールやスクリプトで加工する場面でも役立ちます。
たとえば履歴をCSV形式で出力し、他のシステムと連携するケースなどで重宝します。
実務への活用アイデア
ここまで紹介してきたオプションは単独でも便利ですが、複数を組み合わせて使うとさらに強力になります。
たとえば、--graph --oneline
や -p --author="..."
など、状況に応じて自由にカスタマイズしましょう。
また、特定のブランチだけのコミットを追いたいときは、ブランチ名を指定して以下のようにします。
git log feature/add-authentication --oneline
もちろん、HEAD やタグなど、任意の参照先を指定することも可能です。
単純な履歴確認から詳細な差分まで、オプションの組み合わせ次第で情報を柔軟に絞り込めます。
git log オプションを活かすコツ
コミットメッセージを分かりやすく書く
どれだけオプションでログを整えても、メッセージ自体が曖昧だと履歴を見てもピンときません。
一目で「何をしたのか」を把握できるようにメッセージを記載しましょう。
ブランチ名やタグを意識的に使う
コミット履歴を追いやすくするには、ブランチ名やタグをこまめに使うことも重要です。
どのブランチが何の作業だったか、どのコミットがどのリリースだったかが明確になると、git log がより見やすくなります。
使い方をチームで統一する
チーム全員が好き勝手にコミットメッセージを書いていると、検索オプションを使っても十分な効果が得られない場合があります。
統一したルールのもとで開発すると、git log コマンドの活用度がぐんと高まります。
まとめ
git log コマンドは、単なるコミット履歴の表示だけでなく、多彩なオプションを用いて必要な情報を自在に取得できる頼れる存在です。
履歴管理は開発において重要なポイントなので、どのオプションがどんな場面で役立つのかを知っておくと便利ですね。
- オプションを活用すれば、必要なコミットを素早く検索できる
- ブランチ構造の可視化や差分の確認もコマンドひとつで完結できる
- チームや自身の運用ルールを整えるほど、git log の効果が高まる
慣れないうちは、まず --oneline
や --graph
などの見やすいオプションを活用し、だんだんと --author
や --pretty=format:"..."
といった高度な機能にも挑戦してみるとよいでしょう。
コミット履歴を読み解く力がつけば、開発の効率化だけでなく、過去の仕様変更や不具合の追跡にも強くなります。
今後、開発の現場で履歴を追う機会があれば、ぜひ git log オプション を活用してみてください。
コミットの流れを正しく把握できるようになると、コードレビューの精度も上がり、保守や改修がやりやすくなりますよ。