web-dev-qa-db-ja.com

difftoolを使用した、同じファイルのステージングされたバージョンとステージングされていないバージョンの違い

同じファイルのstagedバージョンとunstagedバージョンの違いを表示する方法はありますか?

例えば:

Changes to be committed:

    modified:   conf/application.conf

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   conf/application.conf

これは、変更をステージングしてから、ステージングせずにファイルを再度変更すると発生します。

EDIT

git status -vvコマンドは、diff/difftoolコマンドを使用する必要があるため、十分ではありません。これは、実際には、あまりにも多くのファイルにあまりにも多くの変更があり、それらすべてをスクロールするのは効率的ではないためです。しかし、diff/difftoolを使用すると、関心のあるファイルを指定できます。

11
DrKaoliN

git diffは、ワークスペースとインデックスの違いを示します。 (インデックスは、ステージングされたファイルが存在する場所です)

通常、git diffを使用してワークスペースとチェックイン内容の変更を確認するため、これは明白ではないように思われるかもしれません。ただし、技術的にはgit diffはワークスペースとインデックスを示し、変更を追加していない場合はインデックスの場合、インデックスはチェックアウトしたものと一致します。

  • ワークスペースとレポを確認するには:git diff HEAD
  • インデックスとリポジトリを確認するには:git diff --cached(-stagedも使用できます)
  • ワークスペースとインデックスを確認するには:git diff
27

コマンドを実行するとgit status -vvファイルのテキストの変更が表示されます。 doc を参照してください。

1