Gitでファイルを管理していると、次のようなことを確認したくなります。
- 直前に何を変更したのか
- どのコミットでファイルが変わったのか
- 以前の状態と現在の状態で、どこが違うのか
- ローカルとGitHubに同じ履歴があるのか
このような変更履歴の確認には、主に次の3つを使います。
| 確認方法 | 分かること | 主な用途 |
|---|---|---|
git log | コミットの並び、作成者、日時、メッセージ | いつ、どの履歴が作られたか確認する |
| GitHubのCommits | GitHubへ送信済みのコミット履歴 | ブラウザで履歴を確認・共有する |
git diff | 2つの状態の具体的な差分 | どの行が追加・削除・変更されたか確認する |
簡単に言えば、git logで履歴を探し、git showやgit diffで変更内容を詳しく確認します。GitHubのCommitsは、その履歴をブラウザで見られるようにしたものです。
Gitの履歴はコミット単位で記録される
Gitは、ファイルを保存するたびに自動で履歴を作る仕組みではありません。変更をgit commitした時点で、リポジトリの履歴として記録されます。
基本的な流れは次のとおりです。
ファイルを変更
↓
git addでステージング
↓
git commitで履歴を作成
↓
git pushでGitHubへ送信
したがって、まだコミットしていない変更はgit logには表示されません。また、ローカルでコミットしていても、git pushしていなければGitHubのCommitsには表示されません。
まずgit statusで現在地を確認する
履歴を調べる前に、最初に次のコマンドを実行します。
git status
git statusでは、現在のブランチ、変更されたファイル、ステージング済みのファイル、未追跡ファイルなどを確認できます。
履歴の確認で迷ったときは、次の順番が基本です。
git status
git log --oneline -5
これで「現在どのブランチにいるか」と「直近にどのコミットがあるか」を把握できます。
git logでコミット履歴を確認する
リポジトリのコミット履歴を表示する基本コマンドは次のとおりです。
git log
通常は、各コミットについて次の情報が表示されます。
- コミットハッシュ
- 作成者
- 日時
- コミットメッセージ
表示例は次のようになります。
commit 7c8d9e0123456789abcdef0123456789abcdef01
Author: Example User <example@example.com>
Date: Sun Aug 23 10:30:00 2026 +0900
docs: add GitHub push procedure
コミットハッシュは、コミットを識別するためのIDです。後でgit showやgit diffを使うときに指定します。
履歴を1行ずつ表示する
普段の確認では、次の形式が見やすく便利です。
git log --oneline
表示例:
7c8d9e0 docs: add GitHub push procedure
2a3b4c5 chore: add .gitignore
1f2e3d4 first commit
直近5件だけを表示する場合は、末尾に-5を付けます。
git log --oneline -5
ブランチの分岐を含めて表示する
ブランチやマージの流れも確認したい場合は、次のコマンドを使います。
git log --oneline --graph --decorate --all
各オプションの意味は次のとおりです。
| オプション | 内容 |
--oneline | 1コミットを1行で表示する |
--graph | ブランチとマージの流れを線で表示する |
--decorate | ブランチ名やタグ名を表示する |
--all | すべてのローカル参照を表示対象にする |
変更されたファイルの概要も表示する
コミットごとに、変更されたファイルと変更量を確認するには--statを付けます。
git log --stat
履歴を一覧しながら「どのファイルが変更されたか」を大まかに調べるときに便利です。
git showで1つのコミットを詳しく確認する
git logで確認したコミットについて、実際の変更内容を表示するにはgit showを使います。
git show 7c8d9e0
7c8d9e0の部分には、確認したいコミットハッシュを指定します。多くの場合は、git log --onelineに表示される短縮ハッシュで指定できます。
直前のコミットを確認するだけなら、ハッシュの代わりにHEADを使えます。
git show HEAD
git showでは、コミットメッセージと、そのコミットによって生じた差分をまとめて確認できます。つまり、「このコミットで何を変更したのか」を調べるための最短コマンドです。
git diffで変更内容を比較する
git diffは、2つの状態を比較するコマンドです。何と何を比較するかによって、表示される内容が変わります。
まだgit addしていない変更を確認する
git diff
これは、作業中のファイルとステージング領域を比較します。主に、まだgit addしていない変更を確認するために使います。
git addした変更を確認する
git diff --staged
これは、次のコミットに含める予定の変更と、現在のHEADを比較します。
--stagedは--cachedと同じ意味です。
git diff --cached
直前のコミット以降の全変更を確認する
ステージング済みと未ステージングの両方を含め、直前のコミットから現在までの変更を確認するには次のようにします。
git diff HEAD
ただし、未追跡ファイルは通常のgit diffには表示されません。未追跡ファイルの有無はgit statusで確認します。
2つのコミットを比較する
git diff 2a3b4c5 7c8d9e0
左側が比較元、右側が比較先です。この例では、2a3b4c5から7c8d9e0までにファイル内容がどう変化したかを表示します。
直前のコミットと現在のコミットを比較する場合は、次のように書けます。
git diff HEAD~1 HEAD
変更されたファイル名と変更量だけを確認したい場合は、--statを付けます。
git diff --stat 2a3b4c5 7c8d9e0
特定のファイルだけを比較する
コマンドの末尾に--とファイルパスを指定します。
git diff 2a3b4c5 7c8d9e0 -- README.md
--は、コミットやオプションの指定とファイルパスを明確に分けるための記号です。
diffの表示を読む
差分は、例えば次のように表示されます。
-古い説明文
+新しい説明文
先頭の記号には次の意味があります。
| 記号 | 意味 |
- | 比較元から削除された行 |
+ | 比較先で追加された行 |
| 記号なし | 前後関係を示すために表示された変更のない行 |
差分の途中には、次のような行も表示されます。
@@ -10,3 +10,4 @@
これは変更箇所の行番号と範囲を示します。最初は細かく読めなくても、-が削除、+が追加と分かれば、変更内容を追跡できます。
なお、1行を書き換えた場合も、差分上では「古い行の削除」と「新しい行の追加」として表示されます。
特定ファイルの履歴だけを確認する
特定のファイルに関係するコミットだけを表示するには、次のようにします。
git log -- README.md
1行表示にする場合:
git log --oneline -- README.md
そのファイルが各コミットでどのように変更されたかまで続けて確認する場合は、-pを付けます。
git log -p -- README.md
ファイル名が変更された履歴も追いやすくするには、--followを使用します。
git log --follow -- README.md
GitHubのCommitsで履歴を確認する
GitHubへgit pushしたコミットは、リポジトリのCommitsページから確認できます。
基本的な確認手順は次のとおりです。
- GitHubで対象リポジトリを開く
- 確認したいブランチを選ぶ
- リポジトリのコミット履歴を開く
- コミットメッセージまたはコミットハッシュを選ぶ
- 変更されたファイルと差分を確認する
GitHubの画面構成は更新されることがありますが、リポジトリのコミット件数や履歴へのリンクからCommitsページを開けます。
GitHub上のコミット詳細では、主に次の情報を確認できます。
- コミットメッセージ
- 作成者と日時
- コミットハッシュ
- 変更されたファイル
- 追加・削除された行
ローカルのgit show <コミットハッシュ>と、GitHub上のコミット詳細は、同じコミットを異なる画面で確認していると考えると分かりやすくなります。
1つのファイルの履歴をGitHubで確認する
GitHubで対象ファイルを開き、ファイルの履歴を表示すると、そのファイルに関係するコミットを絞り込めます。
ただし、ファイル単位の履歴とリポジトリ全体の履歴では表示対象が異なります。探しているコミットがファイル履歴に見つからない場合は、リポジトリ全体のCommitsページを確認します。
GitHubにコミットが表示されない場合
ローカルではコミットが見えるのに、GitHubでは見つからない場合、主に次の原因が考えられます。
- まだ
git pushしていない - 別のブランチを表示している
- 別のリポジトリへpushしている
- pushがエラーで完了していない
現在のブランチとリモートを確認するには、次のコマンドが使えます。
git branch --show-current
git remote -v
git status
目的別のコマンド早見表
| 確認したいこと | コマンドまたは画面 |
| 現在の変更状態 | git status |
| 最近のコミット一覧 | git log --oneline -5 |
| ブランチを含む履歴 | git log --oneline --graph --decorate --all |
| 1つのコミットの詳細 | git show <コミットハッシュ> |
git add前の変更 | git diff |
git add後の変更 | git diff --staged |
| 直前のコミット以降の全変更 | git diff HEAD |
| 2つのコミット間の差分 | git diff <古いコミット> <新しいコミット> |
| 特定ファイルの履歴 | git log --oneline -- <ファイル> |
| GitHubへ送信済みの履歴 | GitHubのCommitsページ |
実務で使いやすい確認手順
変更内容を履歴から追うときは、次の順序にすると混乱しにくくなります。
1. 現在の状態を確認する
git status
2. 最近の履歴から対象コミットを探す
git log --oneline -10
3. 対象コミットの変更内容を確認する
git show <コミットハッシュ>
4. 必要なら2時点を比較する
git diff <古いコミット> <新しいコミット>
5. GitHubへ送信済みか確認する
GitHubの対象ブランチでCommitsページを開き、同じコミットハッシュとメッセージがあるか確認します。
コミットハッシュは、ローカルとGitHubの履歴を照合するための共通IDとして使えます。
git diffに何も表示されないとき
git diffを実行しても何も表示されない場合、必ずしも異常ではありません。
考えられる主な理由は次のとおりです。
- ファイルに未ステージングの変更がない
- 変更をすでに
git addしている - 比較した2つの状態に差がない
- 変更したファイルが未追跡である
まずgit statusで状態を確認し、ステージング済みであれば次を実行します。
git diff --staged
履歴を役立てるにはコミットメッセージも重要
履歴を後から追跡しやすくするには、変更内容が分かるコミットメッセージを付けます。
分かりにくい例:
update
変更内容が分かる例:
docs: add GitHub repository creation steps
fix: prevent duplicate entries in .gitignore
コミットは、単なるバックアップではありません。「何を、なぜ変更したか」を後から再現するための記録です。関連する変更を小さな単位でまとめ、内容が分かるメッセージを付けると、git logやGitHubのCommitsが実用的な作業履歴になります。
まとめ
Gitの変更履歴を追跡する基本は、次の3段階です。
git logで対象コミットを探すgit showまたはgit diffで具体的な変更を確認する- GitHubのCommitsで、リモートへ送信済みの履歴を確認する
普段は、まず次の4つを覚えれば十分です。
git status
git log --oneline
git show <コミットハッシュ>
git diff
履歴の一覧と実際の差分を結び付けて見ることで、「いつ、何が、どのように変わったか」を自分で追跡できるようになります。

