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

时间:2010-04-23 16:10:55

标签: git

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

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

2 个答案:

答案 0 :(得分:82)

这是镐的工作!

从git-log联机帮助页:

  

-S<string>

     

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

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

git log -Sfoobar --since=2008.1.1 --until=2009.1.1 -- path_containing_change

这不是很有用吗?

答案 1 :(得分:0)

git log --stat | grep 'filename'如何开始缩小范围?