按文件扩展名显示两个Git分支之间的差异
如何列出两个git分支之间的差异,但仅显示具有特定文件扩展名的文件 我发现以下内容为我提供了两个分支之间的所有不同文件:-按文件扩展名显示两个Git分支之间的差异,git,grep,git-bash,Git,Grep,Git Bash,如何列出两个git分支之间的差异,但仅显示具有特定文件扩展名的文件 我发现以下内容为我提供了两个分支之间的所有不同文件:- git diff -r --name-only --no-commit-id branch1 branch2 但后来我试着把这些信息输入到grep中,只搜索“yml”文件……结果一无所获 (git diff -r --name-only --no-commit-id branch1 branch2) | grep "*.yml" 我可以在第一个命令中看到yml文件输出,
git diff -r --name-only --no-commit-id branch1 branch2
但后来我试着把这些信息输入到grep中,只搜索“yml”文件……结果一无所获
(git diff -r --name-only --no-commit-id branch1 branch2) | grep "*.yml"
我可以在第一个命令中看到yml文件输出,但在第二个命令中什么也看不到
- 我应该不使用grep吗
- 我的grep命令缺少什么吗
- 还是有更好的方法
*。yml
不是有效的正则表达式
*
表示“前面的字符,零次或多次”,因此它作为正则表达式的前导字符没有意义。如果您想查找所有以.yml
结尾的文件,只需。|grep'\.yml$'
。我们之所以转义
,是因为
表示“任何字符”,而$
表示“行尾”(因此这显然与名为foo.yml.j2
的文件不匹配)。*。yml
不是有效的正则表达式
*
表示“前面的字符,零次或多次”,因此它作为正则表达式的前导字符没有意义。如果您想查找所有以.yml
结尾的文件,只需。|grep'\.yml$'
。我们之所以转义
,是因为
表示“任何字符”,而$
表示“行尾”(因此这显然与名为foo.yml.j2
的文件不匹配)。您可以为git diff添加一个类似shell的模式
git diff -r --name-only --no-commit-id branch1 branch2 "*.yml"
正如@larsks所说,grep接受正则表达式,这与shell通配符不同。您可以为git diff添加一个类似shell的模式
git diff -r --name-only --no-commit-id branch1 branch2 "*.yml"
正如@larsks所说,grep接受正则表达式,这与shell通配符不同。
grep
接受正则表达式,其中*
和
具有完全不同的含义
是的,您不必使用grep:
git diff -r --name-only --no-commit-id branch1 branch2 -- "*.yml"
grep
接受正则表达式,其中*
和
具有完全不同的含义
是的,您不必使用grep:
git diff -r --name-only --no-commit-id branch1 branch2 -- "*.yml"