Git grep仅限上次提交的文件

时间:2017-03-13 19:02:20

标签: git grep

我想像这样运行git grep

git grep -ni 'something' -- "*.spec"

仅针对上次提交中更改的文件,其结果与上述命令相同。你有什么好主意吗?

1 个答案:

答案 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>