使用文件:
.\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
为什么差异?
答案 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)