是否有一个选项来限制git差异到一个给定的文件扩展名集?


当前回答

Git diff只会显示非暂存文件中的差异。

我发现这个问题是因为我想从git diff中排除.info文件,我通过git add *.info来实现这一点,这减少了剩下的文件。

其他回答

为了递归地包括文件(包括当前目录),这对我来说是有效的:

git diff -- '***.py'

Git diff只会显示非暂存文件中的差异。

我发现这个问题是因为我想从git diff中排除.info文件,我通过git add *.info来实现这一点,这减少了剩下的文件。

扩展的命令行参数。

git diff *.py

在另一种选择中,你可以将find管道导入git diff:

find . -name '*.py' -type f | git diff --

对于简单的文件模式,这似乎是可行的:

$ git ls-files -zm '*.txt' | xargs --null git diff

空格安全,你也可以有多个扩展:

$ git ls-files -zm '*.h|*.c|*.cpp' | xargs --null git diff

在git版本2.18.0上测试时,文件扩展名应该使用双引号。如果你想找到本地存储库和远程存储库之间的最后一个差异,在拉取后,你可以使用:

git diff YourBranchName@{1} YourBranchName --name-only "*.YourFileExtionsion"

例如:

git diff master@{1} origin/master --name-only "*.cs"