通过文件扩展名的 git grep

我知道,如果我只想在具有某些扩展名的文件上搜索模式,我可以这样做:

// searches recursively and matches case insensitively in only javascript files
// for "res" from the current directory
grep -iIr --include=*.js res ./

我也一直试图通过 git grep 来寻找这样做的方法(利用 git grep 从其树中存储的索引中获得的速度) ,但是没有用。我看到 给你,排除某些文件类型是不可能的。

39324 次浏览

试试这样做:

find . -type f -iname '*.js' -exec grep -i 'pattern' {} +

是的,例如:

git grep res -- '*.js'

如要搜寻所有分行,可使用以下方法:

git log -Sres --all --name-only -- '*.js'

(我看到您指定了 git grep; 对我来说,这里的方法似乎更简单,也更容易记住——更像我通常需要的其他操作。)