こちらの記事では、Gitで変更差分を確認することができる、git diffコマンドについて詳しく解説しています。
- 漫画形式で読みやすく理解しやすい
- GitHubを使った実践的な内容も分かりやすい
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
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の使うタイミングの紹介は終わりです。