Stage 1・初心者編 ー Lesson 1-5

過去をのぞいてみよう — git log と git diff

git log でコミット履歴を見て、git diff で具体的な差分を確認する

💡 たとえるなら

セーブ一覧を眺め(log)、2つのセーブの違いを見比べる(diff)

前のレッスンで最初のコミットを作りました。コミットは増えるほど価値が出てくるので、まずはもう少しコミットを増やしてから、履歴の見方を覚えていきましょう。

まず2〜3個コミットを増やす

my_project の中で、memo.txt を編集してコミット、をくり返します。

# 内容を書き換える
$ echo "内容を修正しました" > memo.txt
$ git add memo.txt
$ git commit -m "内容を修正"
# さらにもう一度(> で上書き、>> で末尾に追記)
$ echo "# 私のメモ" > memo.txt
$ echo "内容を修正しました" >> memo.txt
$ git add memo.txt
$ git commit -m "タイトルを追加"

これで3つのコミットが歴史に積み上がりました。

コミット履歴はタイムライン

Gitコミット履歴タイムラインの図: 複数のコミットが時系列に並び、HEADポインタが最新コミットを指している v1 最初のメモ a1b2c3d v2 内容を修正 e4f5g6h v3 タイトル追加 i7j8k9l HEAD

過去

HEAD は「いま自分がいる場所」を指す目印です。git commit で新しいコミットを積むとそのコミットに、Stage 2 で学ぶ git switch でブランチを切り替えるとそのブランチの先端に、HEAD が動きます。

git log:歴史の一覧を見る

# 1コミット1行でコンパクトに
$ git log --oneline
i7j8k9l タイトルを追加
e4f5g6h 内容を修正
a1b2c3d 最初のメモを追加

--oneline オプションで「短縮ID+メッセージ」の1行表示になります。全体の履歴を俯瞰するときに便利です。

# 詳細を見たいなら --oneline なし
$ git log
commit i7j8k9l1234567890abcdef
Author: Taro Tanaka <taro@example.com>
Date:  Fri Apr 24 10:00:00 2026
  タイトルを追加

オプションなしの git log では、作者・日時・フルIDまで詳しく確認できます。

左の英数字(a1b2c3d)が コミットID です。次の git diff で、このIDを使って「あのコミット」と「このコミット」を比較できます。

💡 短縮IDとフルIDは同じコミット
--oneline では i7j8k9l のように短く、git log では i7j8k9l1234567890… のように長く表示されますが、どちらも同じコミットです。本来コミットIDは40文字のSHA-1ハッシュで、--oneline は先頭7文字だけを表示しています。普段はこの短い形でも指定できます。

なお、7文字は固定ではありません。短縮IDは「リポジトリ内で一意に区別できる最短の長さ」のため、コミット数が増えて先頭が重複すると、Gitが自動的に桁を増やします。
💡 git log を抜けるには q キー
コミット数が多いと git log はページャー表示に切り替わります。q を押せばターミナルに戻れます。

git diff:何が変わったかを見る

# 2つのコミットの間の差分を比較する
$ git diff a1b2c3d e4f5g6h
--- a/memo.txt
+++ b/memo.txt
-はじめてのメモです
+内容を修正しました

git diff <ID1> <ID2>2つのコミットの間の差分 を表示します。コミットIDは git log --oneline で確認したものを使います。

# 作業ツリーと仮置き場(ステージング)の差分を見る
$ git diff
(変更があれば、ここに差分が出ます)

引数なしの git diffいま編集中のファイル(作業ツリー)と仮置き場(ステージング)の差分 を表示します。まだ git add していない変更を確認したいときに使います。04 レッスンで学んだ「仮置き場」がここでもつながります。

# 特定のファイルだけを確認する
$ git diff memo.txt
(memo.txt の変更があれば、ここに差分が出ます)

ファイル名を指定すると、そのファイルに絞った引数なし git diff と同じ比較 ができます。変更ファイルが多いときに特定のファイルだけを確認したい場合に便利です。

赤(-)= 削除された行、緑(+)= 追加された行 です。プログラムの世界では、この赤緑表示はずっと付き合うフォーマット。Gitに限らず GitHub のレビュー画面でも同じ見た目です。

コマンド早見表

コマンド何ができる?
git log全コミットの詳細一覧(作者・日時・メッセージ)
git log --onelineコミットを1行ずつコンパクトに表示
git diff <ID1> <ID2>2つのコミットの間の差分を確認
git diff作業ツリー(編集中)と仮置き場の差分を確認
git diff <ファイル名>指定したファイルに絞った差分を確認

このレッスンのまとめ

できるようになったこと
git log でコミット履歴を一覧できる
✅ コミットには固有の コミットID(ハッシュ) がつく
git diff で変更内容を赤・緑で確認できる
HEAD は「今どこにいるか」を示す目印

次のレッスンでは、ここまで作ってきたリポジトリを GitHub に保存 して、クラウドにバックアップする方法を学びます。

✏️ 理解度チェック

0 / 3 正解

各問題、選んだ瞬間に正解と解説が表示されます。気軽に試してください。

  1. Q1. コミット履歴を一覧表示するコマンドは?
  2. Q2. git log を1行ずつコンパクトに表示するオプションは?
  3. Q3. 現在の変更内容(編集中だがまだ add していない差分)を見るコマンドは?