grep 在 git diff 中,但显示文件和行号

dpe*_*rcy 10 diff git

当我在分支上工作时,我想快速跳转到我的“TODO”评论。这意味着

  1. 我只想要添加到我的分支上的“TODO”注释(忽略 master 中的注释)
  2. 我希望每个匹配项都显示文件和行号。

我知道两个部分解决方案:git grep TODO具有正确的格式(将 grep.lineNumber 设置为 true),但结果太多。 git diff master... | grep TODO是一组很好的结果,但不显示文件和行号。

是否有一个选项可以告诉git diff每个更改的行添加文件名和行号前缀?(--line-prefix看起来很有希望,但似乎只需要一个固定的字符串。)

我可以通过--new-line-format=":%dn: %L"diff - 输出行号)吗git diff


例如,目前我的搜索结果如下所示:

$ git diff master... | grep TODO
+    // TODO use a non-fatal assertion
+        // TODO use a non-fatal assertion
+// TODO make this conditional too
Run Code Online (Sandbox Code Playgroud)

但理想情况下我想要这样:

src/foo/abc.cpp:221:+    // TODO use a non-fatal assertion
src/foo/xyz.cpp:934:+        // TODO use a non-fatal assertion
src/foo/util/extra.h:49:+// TODO make this conditional too
Run Code Online (Sandbox Code Playgroud)

Ôre*_*rel 2

可以使用patchgit log的方式:

git log -p
# Hit '/' for search mode.
# Type TODO
# Then hit 'n' for next
Run Code Online (Sandbox Code Playgroud)

要限制您的分支,您可以添加firstcommit...HEAD