Либо используйте globstar вашей оболочки (который выполняет рекурсивный поиск) 1 , 2 :
shopt -s globstar
git diff -- *.py **/*.py
или используйте находку:
find -name '*.py' -print0 | xargs -0 git diff --
Оба из них являются специальными именами и пробелами. Хотя вы можете захотеть отфильтровать каталоги, имеющие расширение .py:)
1 Мне нравится делать git diff -- {.,**}/*.py
обычно
2 Когда включен globstar, git diff -- **/*.py
уже включает ./*.py
. На странице руководства Bash: «Если после / / два соседних * будут соответствовать только каталогам и подкаталогам.»