【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

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

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

Gitの学習におすすめ書籍
改訂2版 わかばちゃんと学ぶ Git使い方入門
総合評価
( 5 )
メリット
  • 漫画形式で読みやすく理解しやすい
  • GitHubを使った実践的な内容も分かりやすい
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

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アクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次