我有一个文件,其中某些时候包含一些文本,然后将其删除。
我忘记了哪个确切的提交以及它在哪个分支中。
是否有任何方法可以搜索文件的所有修订版本跨所有分支,并找到文件包含特定文本的提交?
答案 0 :(得分:4)
为此,您可以对-git log使用-S选项:
git log -S'bar' -- foo.rb
此搜索文件bar
中的文本foo.rb
如果您要搜索所有差异,可以执行以下操作:git log -G'bar' -- foo.rb
-S或-G找到更改时,请显示该更改集中的所有更改,而不仅仅是显示..p中包含更改的文件。
注意:此搜索为区分大小写。
如果添加-i
,则可以搜索不区分大小写的内容。进行完整的命令:
git log -i -S'bar' -- foo.rb
注意2 :此搜索仅在您当前的分支中进行。
如果要搜索所有分支,则应添加--all
标志
假装refs /中的所有ref以及HEAD都在命令行中列为。
完整的命令将是:
git log --all -i -S'bar' -- foo.rb
输出将是这样的:
$ git log --all -i -S'bar' -- foo.rb
commit 53106e9cd319a2d8f960a3bbf2731acd0699a54f (feature/x)
Author: name <email>
Date: Fri Jan 18 13:59:32 2019 +0100
Added word