git log - 查找特定字符串的添加记录

9
如何在git历史记录中搜索仅包含指定字符串添加内容的提交?
例如,如何查找所有包含System.out.printlndebugger添加的提交。
我知道可以在git log中使用-S参数,但它包括所有包含指定字符串添加或删除的提交。
是否有自然的方法来实现?
1个回答

2
尝试以下命令 -
搜索提交日志中给定字符串的方法:
git log --all --grep='specific string'
要在存储库中搜索提交的实际内容:
git grep 'specific string' $(git rev-list --all)
它会给出所有给定文本的实例,包含文件名和提交信息。
希望这是您想要的。
更新:
还请查看以下两个链接 - git-grep 像忍者一样搜索git存储库

感谢你的回复。第一个命令并没有排除提供的字符串的减法运算。第二个命令使用 git grep,似乎是在当前工作区中搜索内容而不是在 git 历史记录中进行搜索。我特别寻找添加操作引入的地方。我可能没有表达清楚 - 我已经相应地编辑了帖子。 - Dan Fischer
请问您能解释一下“命令不排除所提供字符串的减法”是什么意思吗?您是指哪个文件是新添加的吗?如果在同一次提交中删除了某个文件,那么该文件将不会显示,是这样吗? - royki
1
我的意思是,例如它将显示添加了“System.out.println”到文件中的提交,同时也会显示从文件中删除了“System.out.println”的提交。我只想要添加了该语句的提交。 - Dan Fischer
1
这个问题有解决方案吗?我遇到了同样的问题。 - bvpx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接