在git中,我如何列出所有已添加并包含特定关键字的行的修改和/或暂存文件?
我觉得git log应该可以做到(或者至少是第一步),但是文档很长,而且今天的搜索没有帮助。
如果在顶部,则为:在Windows上,并且最好不要使用bash。 (不过,我应该可以用find替换一个简单的grep)
目的:查看我上班前添加的所有“ TODO”,理想情况下,格式如下:
c:\src\proj\a.cpp(11): if(i<0) // TODO this needs to be more detailed
c:\src\proj\a.cpp(17755): // TODO too many lines in this file
答案 0 :(得分:1)
使用-S
标志
git log --name-only -S "TODO"
将列出所有在更改后的行中包含该字符串的文件,这与您要求的不完全相同,而是关闭的。
仅适用于暂存文件,请尝试
git diff --staged --name-only -S "TODO"
...或者,省略--staged
标志以检查未暂存的文件。
最后,要同时检查两者:
git diff --name-only -S "TODO" HEAD
(此外,您可能要检查doc中的相关部分)