如何查看带有某些单词的更改行和git commit的包含文件? - git diff可以打印文件名行前缀吗?

obe*_*ies 6 git bash awk grep git-diff

在推送Git提交之前,我通常想要查看我在代码中添加的所有TODO.我已经尝试了几种方法,但我还没有找到一个很好的方法来做到这一点.

例如,使用以下命令,我可以看到在上次提交中添加(和删除)的所有TODO:

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

但是在此输出中,我没有看到哪些文件包含更改,因此我必须猜测或搜索相应的文件.使用以下命令,我看到所有带有"TODO"的文件发生了变化,但我没有看到实际的TODO:

git diff HEAD^ --name-only -G "TODO"
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我怎样才能看到diff行和包含差异的文件名?例如,是否可以git diff使用文件名为每个diff行创建前缀?然后grep'ed线将提供我需要的所有信息.

obe*_*ies 3

以下内容已接近我最初想要的:

git diff HEAD^ --name-only -G "TODO" | xargs git grep "TODO" --
Run Code Online (Sandbox Code Playgroud)

这会打印上次提交中涉及的文件中的所有 TODO,而不仅仅是添加的 TODO。

但这也很有用。通过这种方式,我还可以检查是否还有其他可以删除的 TODO。