1. ホーム
  2. git

[解決済み] git diff HEAD と git diff --staged の違いは何ですか?

2022-03-02 03:39:58

質問

とはどのような違いがあるのでしょうか? git diff HEADgit diff --staged ? 両方試しましたが、どちらも同じ出力になります。

解決方法は?

の出力がこのようになったとします。 git status :

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   y
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   x
#

ご覧のように、コミット用にステージングされていないファイルが1つ変更され、コミットする準備ができた新しいファイルが1つ追加されています。

git diff --staged は、"staged" 領域のファイルへの変更のみを表示します。

git diff HEAD は、トラックされたファイルに対するすべての変更を表示します。もしすべての変更をコミットするためにステージされているのであれば、どちらのコマンドも同じように出力します。