因此,如果我有一个名为foo.rb的文件,并且它给我一个名为bar的缺失方法的错误,那么我想搜索foo.rb的历史记录bar
以查看该字符串是否曾在过去定义过.
我发现这个搜索所有Git历史记录的字符串?
但是这会搜索所有文件.我只想在一个文件中搜索.
ral*_*nja 210
为此,您可以使用-S选项来git log:
git log -S'bar' -- foo.rb
Run Code Online (Sandbox Code Playgroud)
Ant*_*sse 17
或者也许你可以尝试这个(从相关问题搜索所有git历史记录的字符串)
git rev-list --all foo.rb | (
while read revision; do
git grep -F 'bar' $revision foo.rb
done
)
Run Code Online (Sandbox Code Playgroud)
它实际上会查找文件内容,而不会为任何事件发生提交消息/补丁.
正如@Jakub Nar\xc4\x99bski所提到的,我更喜欢使用正则表达式搜索包含 \'bar\' 的 diff
\ngit log -G\'bar\' -- foo.rb\n
Run Code Online (Sandbox Code Playgroud)\n