Git历史-按关键字查找丢失的行

Git历史-按关键字查找丢失的行,git,version-control,Git,Version Control,我在Git存储库中的某个地方有一行,其中包含数百次提交之前的“Foo”一词 如果没有购买FishEye?最坏情况下,有任何方法可以找到其修订号,请使用和grep?的鹤嘴锄(-S)选项可以解决该问题 (您甚至可以添加一个时间范围:--自=2009.1.1--至=2010.1.1) 此转换用于查找表示接触指定字符串的更改的文件对。 当使用diffcore pickaxe时,它会检查是否有文件对的“原始”端具有指定的字符串,而其“结果”端不具有指定的字符串。 这样的文件对表示“此变更集中出现的字符串”

我在Git存储库中的某个地方有一行,其中包含数百次提交之前的“Foo”一词


如果没有购买FishEye?

最坏情况下,有任何方法可以找到其修订号,请使用和
grep

鹤嘴锄
-S
)选项可以解决该问题

(您甚至可以添加一个时间范围:
--自=2009.1.1--至=2010.1.1

此转换用于查找表示接触指定字符串的更改的文件对。
当使用
diffcore pickaxe
时,它会检查是否有文件对的“原始”端具有指定的字符串,而其“结果”端不具有指定的字符串。
这样的文件对表示“此变更集中出现的字符串”。
它还检查丢失指定字符串的相反大小写


2014年更新:

从那时起,您可以做(从的):

这些日志命令列出了添加或删除给定搜索字符串/regex的提交(通常是最新的)。
-p
-patch
)选项会在添加或删除模式的位置显示相关的差异,以便您可以在上下文中看到它

找到添加您要查找的文本的相关提交后(例如,
8beeff00d
),找到包含提交的分支:


(我引用了“”中的最后一个命令)

给赛尔夫的提示:
--pickaxe all
-S
之间的关系可以用和更好地理解。注二:pickaxe选项是我从杰弗罗米的答案中学到的另一个命令/选项::继续投票给他最初的答案;)“非常有用”,他的回答通常都是这样。)真是大喊大叫,谢谢!相反,我总是知道如果你碰到了一个问题,我就没有必要回答。@Jefromi:“我总是知道如果你碰到了一个问题,我就没有必要回答。”。好。。。关于那件事。检查一下也无妨;)我还在这里学习。例如,你的专业知识可能会让你受益。好吧,每个规则都有例外;我确实检查过,但很少需要!
 git log -SFoo -- path_containing_change
-S<string>
diffcore-pickaxe
git log -p --all -S 'search string'
git log -p --all -G 'match regular expression'
git branch -a --contains 8beeff00d