如何找到包含“foo”的文件的所有 git 版本?

5
假设我有一个已经提交到git的文件bar.cpp。在过去的某个时候,我曾经在这个文件中有一个foo字符串。
问题:如何查找包含字符串foo的所有git版本的bar.cpp
注:最好使用命令行解决方案。

您想要包含foo全部版本,还是使用git bisectgrep会更好呢? - Ry-
如果我可以先找到包含 foo 的最新版本或更新版本,那会大有帮助(顺便说一句,我不熟悉 git bisect)。 - kfmfe04
“git bisect run grep foo bar.cpp” 是我的想法,但 @StevenPenny 的更好 :) - Ry-
1个回答

4

可以使用挑选器

git log -S foo bar.cpp

如果您想要差异

git log -p -S foo bar.cpp

更多信息

-S<字符串>
查找引入或删除 <字符串> 实例的差异。请注意,这与字符串仅在 diff 输出中出现是不同的;有关更多详细信息,请参见 gitdiffcore(7) 中的 pickaxe 条目。

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