`git diff --check`は、(バイナリファイルを除く)diffの内容にtrailing whitespace等が無いかをチェックできるコマンドです。 チェック対象を通常の差分ではなく、HEADのファイル全体にしたい場合は、以下のように実行します。 ```sh git diff --check "$(git hash-object -t tree /dev/null)" HEAD ``` ### HEADのファイル全体をチェックする仕組みと「empty treeのハッシュ値」 上述のコマンドでは、「何のファイルもないtreeのハッシュ値」とHEADの間でdiffを取ることで、 diffの結果がHEADのファイルの内容全体となり、それがチェックされるようにしています。 では「何のファイルもないtreeのハッシュ値」つまり「empty treeのハッシュ値」をどう求めれば良いかと言いますと、 [`git hash-object -t tree /dev/null`となります](https://stackoverflow.com/questions/9765453/is-gits-semi-secret-empty-tree-object-reliable-and-why-is-there-not-a-symbolic)。 ```sh $ git hash-object -t tree /dev/null 4b825dc642cb6eb9a060e54bf8d69288fbee4904 ``` ちなみに「empty treeのハッシュ値」は、上記のように定数値ではあるのですが、 gitで用いるハッシュの計算方法(アルゴリズムなど)が変わればこの定数値も変わりますので、 定数として持たず`git hash-object`に計算させた方が安全です。