如何搜索git历史记录以查找消失的行?

ski*_*ppy 43 git

我需要在git存储库中搜索特定文件的历史记录,以找到一条消失的行.提交消息将没有任何相关文本可供搜索.我用什么命令?

进一步的细节:这是我的非标准任务跟踪软件的todo列表的历史.我已经保留了两年,因为在软件中没有为我保留足够的信息.遗憾的是,我的提交消息通常只有任务ID,而我需要做的是按主题而不是按编号查找已关闭的任务.是的,真正的解决方案是更好的任务跟踪软件,但这完全不在我手中.

Cas*_*bel 84

这是镐的工作!

从git-log手册页:

-S<string>

寻找引入或删除实例的差异<string>.请注意,这与简单地出现在diff输出中的字符串不同; 有关更多详细信息,请参阅gitdiffcore(7)中的pickaxe条目.

您当然可以使用更多选项来缩小范围,例如:

git log -Sfoobar --since=2008.1.1 --until=2009.1.1 -- path_containing_change
Run Code Online (Sandbox Code Playgroud)

这不是很有用吗?

  • 我觉得这个功能本身应该将人们变成git.+1 (9认同)
  • @Ryan我也喜欢这个选项,“git log -G”的文档:https://git-scm.com/docs/git-log#Documentation/git-log.txt--Gltregexgt。特别注意,如果您要查找特殊字符,可以使用引号: `git log -G"Microsoft.Network/dnsZones/A"` (2认同)