差分を表示する

Gitリポジトリの変更点を確認する方法を学びましょう。

git diffとは?

git diffは、Gitリポジトリの変更を確認するためのコマンドです。

git diffを使うことで、現在のワーキングツリーと最新のコミットとの差分を表示できます。

git-practiceディレクトリのhello.txtファイルを編集してみましょう。
コマンドラインのリダイレクトを使って、ファイルに追記します。

Terminal window
echo "Hello, Git!" >> hello.txt

次に、git diffコマンドを実行して、変更点を確認します。

Terminal window
git diff

次のように表示されれば、変更点が確認できます。

Terminal window
diff --git a/hello.txt b/hello.txt
index 670a245..793bffa 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1,2 @@
Hello, Git!
+Hello, Git!

ステージングと差分の確認

先ほどはワーキングツリーの変更点を確認しましたが、ステージングエリアに追加した変更点も確認できます。
まず、変更をステージングエリアに追加します。

Terminal window
git add hello.txt

この状態でgit diffコマンドを実行すると、何も表示されません。

git diff --cachedコマンドを実行して、ステージングエリアの変更点を確認します。

Terminal window
git diff --cached

次のように表示されれば、ステージングエリアの変更点が確認できます。

Terminal window
diff --git a/hello.txt b/hello.txt
index 670a245..793bffa 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1,2 @@
Hello, Git!
+Hello, Git!

コミットの練習

現状はステージングエリアに変更が追加されている状態です。
次に、これをコミットしてみましょう。

Terminal window
git commit -m "あいさつを追加"

コミットが成功したら、再度git diffコマンドを実行してみてください。

Terminal window
git diff
Terminal window
git diff --cached

コミットにされているかどうかを確認するために、git logコマンドを実行します。

Terminal window
git log

次のように表示されれば、コミットが成功しています。

Terminal window
commit f38acd13437690774b52ddd7b7d6b7cc53bfca5b (HEAD -> main)
Author: tomoya yoshida <ihatov08@gmail.com>
Date: Tue Jun 24 10:46:09 2025 +0900
あいさつを追加
commit 088492923f0e95c8026c06e1356e2db8c9c2be8c (origin/main)
Author: tomoya yoshida <ihatov08@gmail.com>
Date: Thu Jun 19 08:49:57 2025 +0900
newfile.txtを追加
commit a6ab34c365614882c9da6a747156f65c349e4cd8
Author: tomoya yoshida <ihatov08@gmail.com>
Date: Thu Jun 19 08:41:31 2025 +0900
hello.txtを追加

リモートリポジトリにプッシュする

次に、リモートリポジトリに変更をプッシュしてみますが、その前にgit statusコマンドを実行して、現在の状態を確認します。

Terminal window
git status

次のようなメッセージが表示されます。

Terminal window
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean

英語ですが、
意味は
「現在のブランチはorigin/mainより1つのコミットが進んでいます。git pushを使ってローカルのコミットを公開できます。」
ということです。

origin/mainはリモートリポジトリの状態を指しています。
git remote addコマンドで設定したリモートリポジトリの名前がoriginで、ブランチ名がmainです。
ブランチについてはこの後に詳しく学びます。

つまり次のような状態です。

ローカル(手元のパソコンのリポジトリ)

gitGraph
  commit id: "hello.txtを追加"
  commit id: "newfile.txtを追加"
  commit id: "あいさつを追加"

origin(リモートリポジトリ)

gitGraph
  commit id: "hello.txtを追加"
  commit id: "newfile.txtを追加"

念のためGitHubのリポジトリでも確認してみます。

前のレクチャーでインストールしたGitHub CLIを使うとターミナルからGitHubのリポジトリをブラウザで開くことができます。

Terminal window
gh browse

ブラウザが開いて、GitHubのリポジトリが表示されます。

リモートのリポジトリはコミットが2つしかないことを確認しましょう。

GitHubのリポジトリ

リモートリポジトリに修正を反映して、手元のパソコンにあるリポジトリの状態と同期させましょう。
(最新の状態にしましょう)

Terminal window
git push origin main

では、再度git statusコマンドを実行して、状態を確認します。

Terminal window
git status

次のように表示されれば、リモートリポジトリにプッシュが成功しています。

Terminal window
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean

英語ですが、意味は「現在のブランチはorigin/mainと同じ状態です。コミットする変更はありません。」ということです。
これでリモートリポジトリとローカルリポジトリの状態が同期されました。

つまり次のような状態です。

ローカル(手元のパソコンのリポジトリ)

gitGraph
  commit id: "hello.txtを追加"
  commit id: "newfile.txtを追加"
  commit id: "あいさつを追加"

origin(リモートリポジトリ)

gitGraph
  commit id: "hello.txtを追加"
  commit id: "newfile.txtを追加"
  commit id: "あいさつを追加"

次はブランチについて学びましょう。