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

时间:2014-12-23 15:59:55

标签: git bash awk grep git-diff

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

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

git diff HEAD^ | grep "TODO"

然而,在此输出中,我不知道哪些文件包含更改,因此我必须猜测或搜索相应的文件。使用以下命令,我看到所有带有" TODO"的文件。改变,但我没有看到实际的TODO:

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

所以我的问题是我怎样才能看到diff行和包含差异的文件名?是吗?可以使git diff为每个带有文件名的diff行添加前缀?然后grep' ed行将提供我需要的所有信息。

1 个答案:

答案 0 :(得分:2)

以下是接近我原来想要的:

git diff HEAD^ --name-only -G "TODO" | xargs git grep "TODO" --

这将打印上次提交中触及的文件中的所有TODO - 而不仅仅是已添加的TODO。

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