为什么引用在git grep - pathspec中很重要?

时间:2014-07-17 08:14:44

标签: git

使用文件:

.\contains-x.txt
.\subdir\also-contains-x.txt

如果引用pathspec,我会得到不同的结果:

$ git grep x -- *.txt
contains-x.txt:x

$ git grep x -- '*.txt'
contains-x.txt:x
subdir\also-contains-x.txt:x

为什么差异?

3 个答案:

答案 0 :(得分:1)

如果没有引号,shell会扩展*,因此您不会将*.txt传递给git grep,而是传递当前目录中与此模式匹配的文件列表。

答案 1 :(得分:1)

如果没有引号,patspec会在git获取之前由shell展开echo。与下面的$ touch contains-x.txt $ ls contains-x.txt $ echo *.txt contains-x.txt $ echo '*.txt' *.txt 示例类似。

{{1}}

答案 2 :(得分:-1)

答案很简单。

当你向git命令添加“”时,它只需在包括子文件夹在内的所有项目上执行它, 例如

git add *.txt   -> will add all the *.txt files in the current directory
git add '*.txt' -> will add all the .txt file in any directory (recursive)