2011-01-19 38 views
3

当我想要得到的文件列表,我已经改变所以,我用这个命令:GIT:改变文件名以一定的延伸

git diff --name-only 

但是,很多时候,我得到很多的文件,我不要现在不在乎。例如,如果我正在上传到我的PHP服务器,我通常只需要.php文件的列表。我试过这个:

git diff --name-only **/*.php 

但不幸的是,它只显示我在第一个子目录中的文件。所以看起来它不是将双星解释为递归。

有什么想法?

回答

8

只是杠杆的grep:

git diff --name-only | grep .php 
2
git diff --name-only '**/*.php' 

(注意引号)

编辑

大多数POSIX弹不支持这种模式。从你的评论中,我了解到git不是(我现在无法测试)。

一种解决方法可能是

git diff --name-only $(find . -name \*.php) 
+0

它不工作。我得到这个错误:“致命的:模棱两可的论点'**/*。php':未知的版本或路径不在工作树中。” – Rafid 2011-01-19 10:53:09

+0

谢谢。另一个工作,但我想知道在$ .php之前$符号和正斜杠(\)的含义?! – Rafid 2011-01-20 06:45:12