git grep - 但仅限于索引中的新文件或修改过的文件

mjs*_*mjs 14 git grep

是否有可能git grep只搜索索引/缓存中的新文件或修改过的文件?

(这种情况的用例是在预提交钩子中使用,它寻找"调试"代码,例如console.log在预期提交中.但我不会被console.log"现有"代码所困扰.最好这也不能匹配它的实例console.log删除了,但我可以忍受那些匹配!)

mjs*_*mjs 16

事实证明,这样做的方法不是通过git grep,而是通过完全不同的命令,也恰好能够搜索:git diff-index.(简单和正交的另一个胜利......)

我想要的是通过以下方式实现的:

$ git diff-index -U --cached -G <regexp> HEAD
Run Code Online (Sandbox Code Playgroud)

  • 注意:搜索仅限于新文件或已修改文件中的_changed lines_.要搜索已修改文件的全部内容,请参阅此处:/sf/ask/1091505341/尚未被 (4认同)

Tom*_*Tom 8

我通常只做以下事情:

git diff | grep TODO
Run Code Online (Sandbox Code Playgroud)

如果你有足够的更改行来让烦人,那么我添加| grep '^+',或开始搞乱-[ABC]选项.