如何git grep只有一组文件扩展名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何git grep只有一组文件扩展名相关的知识,希望对你有一定的参考价值。
如何执行git grep并将检查的文件限制为一组文件。我希望能够grep查找MyFunc的.cpp和.h文件的内容。例如:
git grep "MyFunc" -- *.[hc]*
但是,这也匹配.c文件和.cs文件。
答案
使用:
git grep "MyFunc" -- '*.cpp' '*.h'
引号是必要的,以便git扩展通配符而不是shell。如果省略它们,它只会搜索当前目录中的文件,而不是包含子目录。
另一答案
这可以通过以下方式在Windows中使用git bash时实现:
git grep "MyFunc" -- *.{cpp,h}
甚至更简单:
git grep "MyFunc" -- *.cpp *.h
git glossary上对pathspec的解释提到使用fnmatch(3)匹配模式。它匹配Shell and Utilities volume of IEEE Std 1003.1-2001, Section 2.13.1描述的模式(包括多个字符)并导致basic regular expressions matching multiple characters并给了我第一个解决方案。
进一步的研究通过查看glob的文档引导我进入第二个解决方案。
以上是关于如何git grep只有一组文件扩展名的主要内容,如果未能解决你的问题,请参考以下文章
如何从visual studio代码(拉/推)访问git gist?
VSCode自定义代码片段15——git命令操作一个完整流程