如何查看带有特定单词的更改行以及git提交的包含文件git diff可以打印文件名行前缀吗?

如何查看带有特定单词的更改行以及git提交的包含文件git diff可以打印文件名行前缀吗?,git,bash,awk,grep,git-diff,Git,Bash,Awk,Grep,Git Diff,在推动Git提交之前,我通常希望查看我在代码中添加的所有TODO。我已经尝试了几种方法,但我仍然没有找到一个好的方法来做到这一点 例如,使用以下命令,我可以看到在上次提交中添加(和删除)的所有TODO: git diff HEAD^ | grep "TODO" 但是,在这个输出中,我看不到哪些文件包含更改,因此我必须猜测或搜索相应的文件。使用以下命令,我可以看到所有更改了“TODO”的文件,但看不到实际的TODO: git diff HEAD^ --name-only -G "TODO" 所

在推动Git提交之前,我通常希望查看我在代码中添加的所有TODO。我已经尝试了几种方法,但我仍然没有找到一个好的方法来做到这一点

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

git diff HEAD^ | grep "TODO"
但是,在这个输出中,我看不到哪些文件包含更改,因此我必须猜测或搜索相应的文件。使用以下命令,我可以看到所有更改了“TODO”的文件,但看不到实际的TODO:

git diff HEAD^ --name-only -G "TODO"

所以我的问题是,我如何才能同时看到差异行和包含差异的文件名?例如,是否可以使
git diff
在每个diff行前面加上文件名?然后,grep'ed行将提供我需要的所有信息。

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

git diff HEAD^ --name-only -G "TODO" | xargs git grep "TODO" --
这将打印上次提交中涉及的文件中的所有TODO,而不仅仅是添加的TODO

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

请参阅我的,以解决类似问题。相关: