コミット内の Python ファイルのみで「git diff --check」を実行する方法がわかりません。3 つのファイルを含むコミットがあります。
$ git show --name-only
...
tools/gitHooks/preReceive.py
tools/gitHooks/unittests/testPreReceive.py
Makefile
最後の 2 つのファイルには、末尾の空白があります。
$ git diff --check HEAD~1 HEAD
tools/gitHooks/unittests/testPreReceive.py:75: trailing whitespace.
+newmock = Mock()
Makefile:41: new blank line at EOF.
空白チェックを Python ファイルのみに制限したいと思います。これを行うと、正しいファイルが得られます。
$ git diff --name-only HEAD~1 HEAD | grep ".py"
tools/gitHooks/preReceive.py
tools/gitHooks/unittests/testPreReceive.py
しかし、ファイル名を 'git diff --check' (xargs の有無にかかわらず) にパイプすると、間違った出力が得られます。
$ git diff --name-only HEAD~1 HEAD | grep ".py" | xargs git diff --check HEAD~1 HEAD --
$
$ git diff --name-only HEAD~1 HEAD | grep ".py" | git diff --check HEAD~1 HEAD --
tools/gitHooks/unittests/testPreReceive.py:75: trailing whitespace.
+newmock = Mock()
Makefile:41: new blank line at EOF.
私もこれといくつかのバリエーションを試しましたが、運がありませんでした:
$ git diff --check HEAD~1 HEAD -- "*.py"
$
誰でも助けることができますか?答えに近づいた気がします。