如何搜索整个git仓库的提交历史以查找字符串更改?

6
我有一个网站/仓库。
我的网站的一部分写着:
“由 https://myotherwebsite.com/ 提供支持。”
在某个时间点,我曾让一个恶作剧者参与我的网站开发,并把它改为:
“由 https://theirwebsite.com 提供支持。”
现在我该如何搜索整个存储库历史记录,找出做出这个更改的提交。
多年来,我们进行了很多次提交/分支。
1个回答

8
如果你可以忽略无用的代码分支,并假设所有相关代码都可以从最新的主版本中访问,我建议使用git log的-S选项:
git log -S "theirwebsite"

请查看文档,如果您的实际需求比您在此处描述的更复杂,可以考虑使用正则表达式搜索。
更好的是:使用--all,您可以搜索整个存储库(感谢j6t提供的技巧!)
git log --all -S "theirwebsite"

(正如vfalcao所指出的那样,考虑在此处使用--name-only选项列出发生更改的文件。)

2
忽略死亡分支的限制并不是必要的。只需在建议的 git log 命令中添加 --all 以搜索所有分支即可。 - j6t
考虑使用 git log --all --name-only -S "theirwebsite" 命令,它会列出每个提交中更改的文件。这可以帮助您缩小确切的更改点。 - vfalcao
@vfalcao 谢谢,当时我没有注意到你的评论! - Romain Valeri

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