Git

【Git】変更差分を確認する方法|git diffコマンド

こちらの記事では、Gitで変更差分を確認することができる、git diffコマンドについて詳しく解説しています。

先輩くん
先輩くん
Gitのインストールをしていない人はこちらの記事を参考にしてください!

Gitの学習におすすめ参考書
改訂2版 わかばちゃんと学ぶ Git使い方入門

本書情報
著者湊川 あい
発売日2021/6/12
ページ数280ページ
Kindle版
レビュー
(Amazon)
(84件)

参考書が苦手な人はUdemyの動画がおすすめ
もう怖くないGit!チーム開発で必要なGitを完全マスター

動画情報
作成者山浦 清透
学習時間5.5時間
受講者数40,161人
レビュー (7,512件)
動画の詳細はこちら

git diffコマンドの使い方

git diffとは、変更差分を確認することができるコマンドで、diffとはDifference(差分)を省略したものになります。

git diffコマンドでは、「ワークツリーとステージの差分」「ステージとリポジトリの差分」「特定のファイルとの差分」の3つを確認することができます。

まず最初にワークツリーとステージの差分を確認する方法は以下の通りです。
git diff
ステージとリポジトリの差分を確認する方法はオプション「–staged」を使います。
git diff --staged
特定のファイルとの差分を確認する方法は、差分を調べたいファイルを指定します。
git diff ファイル名

何もない状態で、git diffコマンドを実行した場合は何も表示されません。

差分があった場合の見方

git diffコマンド実行時に差分がある場合、追加された行の最初には「+」が表示され、削除された行の最初には「」が表示されます。

+<p>追加された行</p>
-<p>削除された行</p>

実際にgit diffコマンドを使ってみよう

実際にgit diffコマンドを使って差分を確認していきましょう。
今回は、リポジトリに以下のindex.htmlファイルがコミットされている状態で解説していきます。
※ワークツリー・ステージ・リポジトリのファイルは全て同じのため、差分はない状態です。
<h1>タイトル</h1>
まず初めにindex.htmlファイルに、1行テキストを追加します。
<h1>タイトル</h1>
<p>テキスト</p> <!-- 新規追加 -->
この状態で、git diffコマンドを実行してみます。
git diff

diff --git a/index.html b/index.html
index 73d7bf3..fcc2251 100644
--- a/index.html
+++ b/index.html
@@ -1 +1,2 @@
 <h1>タイトル</h1>
+<p>テキスト</p> ←追加された行

オプションを指定していない、git diffコマンドはワークツリーとステージの差分を調べるので、1行新規で追加されていると差分が表示されます。

git addコマンドでindex.htmlファイルをステージにアップさせ、再度git diffコマンドを実行してみましょう。
git add index.html

今度は何も表示がされません。
これは、git addコマンドでステージにindex.htmlファイルをアップさせたため、ワークツリーとステージのファイル差分がないことを意味しています。

次にステージとリポジトリの差分を確認する「–staged」オプションを付けて確認してみましょう。
git diff --staged

diff --git a/index.html b/index.html
index 73d7bf3..fcc2251 100644
--- a/index.html
+++ b/index.html
@@ -1 +1,2 @@
 <h1>タイトル</h1>
+<p>テキスト</p>

すると、先程と同様の差分結果が表示されました。
これはgit addコマンドでステージにindex.htmlファイルがアップされたので、ステージにあるファイルとリポジトリにあるファイルの内容が違うためこのような結果が表示されます。

続いて、「git commit」コマンドでステージにあるファイルをリポジトリに反映させます。
git commit -m "add text"

この状態で、git diffコマンドを実行するとどうなるでしょうか?
答えは、何も表示がされません。理由はgit addコマンドでステージにアップさせた後に差分を確認した時と全く同じことで、ステージされていたファイルがリポジトリに反映されたので、ステージとリポジトリのファイルは全く同じ内容で差分がないからです。

以上で、git diffの使うタイミングの紹介は終わりです。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村