git diffで変更差分を見てみる
git diff
とは
- 作業ツリーに行われた変更を表示するもの
- 「どこを変更したんだっけ?」を確認したい時に使う
リポジトリの構成とファイルの中身
以下のような構成、中身になっているとして話をしていきます。(この状態がリポジトリの最新の状態とします)
hogeディレクトリ ├ .git ├ hello.txt └ hey.txt
hello.txt
の中身は以下の通りです。
hello
hey.txt
の中身は以下の通りです。
hey
変更を加える
上の状態からローカルで以下の変更を加えます。
まず、hello.txt
の中身を以下のように変えます。(改行し、world
という文字を追加します)
hello world
hey.txt
は以下のように変えます(改行せず、後ろに Siri
という文字を追加します)
hey Siri
そして、git add
でhey.txt
のみをインデックスに追加します。
git add hey.txt
これで作業は終わりです。git status
で状況を見ると以下のようになっているかと思います
Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: hey.txt 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: hello.txt
git diff
で状況を確認してみる
git diff
この状態で git diff
をするとどうなるか、見てみましょう
diff --git a/hello.txt b/hello.txt index b6fc4c6..9db7df0 100644 --- a/hello.txt +++ b/hello.txt @@ -1 +1,2 @@ -hello \ No newline at end of file +hello +world \ No newline at end of file
hello.txtのみが表示されました。
git diff
と何もオプションをつけずに実行した場合、インデックスに登録していない(git add
をしていない)ファイルの変更差分を見ます。
git diff --cached
次に、git diff --cached
をしてみます。出力は以下のようになります。
diff --git a/hey.txt b/hey.txt index 2b31011..551860c 100644 --- a/hey.txt +++ b/hey.txt @@ -1 +1 @@ -hey \ No newline at end of file +hey Siri \ No newline at end of file
--cached
というオプションをつけると、今度はインデックスに登録されている(git add
をした)ファイルの変更差分を見る事ができます。
おわりに
- 簡単ですが、git diffで変更差分を見てみました。
- git diffだけだとインデックスに登録されたファイルは表示されないので注意してください