我需要在git存储库中搜索特定文件的历史记录,以查找已消失的行。提交消息将没有任何相关文本可供搜索。我用什么命令?
进一步的细节:这是我的非标准任务跟踪软件中我的待办事项列表的历史。我已经保留了两年,因为在软件中没有为我保留足够的信息。遗憾的是,我的提交消息通常只有任务ID,而我需要做的是按主题而不是按编号查找已关闭的任务。是的,真正的解决方案是更好的任务跟踪软件,但这完全不在我的手中。
答案 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'
如何开始缩小范围?