git diff を使用して変更を調べる
このステップでは、git diff
コマンドを使用して、ファイルに加えた正確な変更を確認する方法を学びます。git status
はどのファイルが変更されたかを教えてくれますが、git diff
はそれらのファイル内で何が変更されたかを示します。
まず、message.txt
ファイルに変更を加えましょう。~/project/my-time-machine
ディレクトリにいることを確認してください。
nano
エディタを使用してファイルを開きます。
nano message.txt
ファイルに新しい行を追加します。例えば:
Hello, Future Me
This is a new line.
Ctrl + X
を押してエディタを終了し、Y
を押して保存し、Enter
を押してファイル名を確認します。
ファイルを変更したので、git status
を使用して Git がこの変更をどのように認識しているかを確認しましょう。
git status
message.txt
が変更されたことを示す出力が表示されるはずです。
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
Git は、message.txt
が modified
(変更された)で、変更が not staged for commit
(コミットのためにステージングされていない)ことを教えてくれます。これは、ファイルを変更したが、まだ Git にこの変更をコミットの準備をするように指示していないことを意味します。
では、git diff
を使用して具体的な変更を確認しましょう。
git diff
次のような出力が表示されます。
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+This is a new line.
この出力を理解しましょう。
---
と +++
で始まる行は、元のファイル (a/message.txt
) と新しいファイル (b/message.txt
) を示しています。
@@
で始まる行は「ハンクヘッダー」と呼ばれます。これは、ファイル内で変更が行われた場所を示しています。-1 +1,2
は、元のファイルの 1 行目から 1 行が削除され、新しいファイルの 1 行目から 2 行が追加されたことを意味します。
-
で始まる行は削除された行を示します。
+
で始まる行は追加された行を示します。
今回の場合、1 行を追加したので、+
で始まる行が表示されます。
git diff
コマンドは、変更をステージングまたはコミットする前にレビューするのに非常に便利です。これにより、ミスを見つけ、コミットに意図した変更のみを含めることができます。
q
を押して差分表示を終了し、コマンドラインに戻ります。