当我想获取我为此更改的文件的列表时,我使用以下命令:
git diff --name-only
但是很多时候,我得到了很多我现在不关心的文件。例如,如果我要上传到我的 PHP 服务器,我通常只需要 .php 文件的列表。我试过这个:
git diff --name-only **/*.php
但不幸的是,它只显示第一个子目录中的文件。所以看起来它没有将双星解释为递归。
任何的想法?
当我想获取我为此更改的文件的列表时,我使用以下命令:
git diff --name-only
但是很多时候,我得到了很多我现在不关心的文件。例如,如果我要上传到我的 PHP 服务器,我通常只需要 .php 文件的列表。我试过这个:
git diff --name-only **/*.php
但不幸的是,它只显示第一个子目录中的文件。所以看起来它没有将双星解释为递归。
任何的想法?
只需利用 grep:
git diff --name-only | grep .php
git diff --name-only '**/*.php'
(注意引号)
编辑
大多数 POSIX shell 不支持该模式。根据您的评论,我认为 git 也没有(我现在无法测试)。
一种解决方法可能是
git diff --name-only $(find . -name \*.php)
使用引号让 git 执行过滤器:
git diff --name-only "*.php"