4

当我想获取我为此更改的文件的列表时,我使用以下命令:

git diff --name-only

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

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

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

任何的想法?

4

3 回答 3

12

只需利用 grep:

git diff --name-only | grep .php
于 2011-01-19T19:37:15.667 回答
3
git diff --name-only '**/*.php'

(注意引号)

编辑

大多数 POSIX shell 不支持该模式。根据您的评论,我认为 git 也没有(我现在无法测试)。

一种解决方法可能是

git diff --name-only $(find . -name \*.php)
于 2011-01-19T10:46:53.233 回答
1

使用引号让 git 执行过滤器:

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

于 2018-11-15T12:28:38.783 回答