我想像这样运行git grep
git grep -ni 'something' -- "*.spec"
仅针对上次提交中更改的文件,其结果与上述命令相同。你有什么好主意吗?
答案 0 :(得分:1)
我能想到的最好的方法是获取文件列表,并将其与常规grep
1 一起使用。棘手的部分(当然)是处理带有空格和换行符的文件名。
git diff-tree -z --no-commit-id --name-only -r HEAD \ | xargs -0 grep --include 'pattern' -- "regex"
其中 pattern 是您用来匹配文件名的那个 regex 是要在文件中搜索的实际正则表达式。
1 不使用git-grep
(其他没有必要)的原因是它扩展了文件名中的模式,而我们需要完全匹配。< / SUP>