Gitの変更履歴を確認する方法:git log・GitHub Commits・git diffの使い分け

Gitでファイルを管理していると、次のようなことを確認したくなります。

  • 直前に何を変更したのか
  • どのコミットでファイルが変わったのか
  • 以前の状態と現在の状態で、どこが違うのか
  • ローカルとGitHubに同じ履歴があるのか

このような変更履歴の確認には、主に次の3つを使います。

確認方法分かること主な用途
git logコミットの並び、作成者、日時、メッセージいつ、どの履歴が作られたか確認する
GitHubのCommitsGitHubへ送信済みのコミット履歴ブラウザで履歴を確認・共有する
git diff2つの状態の具体的な差分どの行が追加・削除・変更されたか確認する

簡単に言えば、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

各オプションの意味は次のとおりです。

オプション内容
--oneline1コミットを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ページから確認できます。

基本的な確認手順は次のとおりです。

  1. GitHubで対象リポジトリを開く
  2. 確認したいブランチを選ぶ
  3. リポジトリのコミット履歴を開く
  4. コミットメッセージまたはコミットハッシュを選ぶ
  5. 変更されたファイルと差分を確認する

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段階です。

  1. git logで対象コミットを探す
  2. git showまたはgit diffで具体的な変更を確認する
  3. GitHubのCommitsで、リモートへ送信済みの履歴を確認する

普段は、まず次の4つを覚えれば十分です。

git status
git log --oneline
git show <コミットハッシュ>
git diff

履歴の一覧と実際の差分を結び付けて見ることで、「いつ、何が、どのように変わったか」を自分で追跡できるようになります。

参考資料

参考になったらシェアしてください
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

機械設計・油圧・CAD・Python・AIなど、ものづくりに関わる技術を扱っています。工学知識を整理・構造化し、設計や自動化に再利用できる形へ変えていくことを目指しています。

目次