在文件的所有修订版中搜索文本

时间:2019-01-18 12:38:20

标签: git

我有一个文件,其中某些时候包含一些文本,然后将其删除。

我忘记了哪个确切的提交以及它在哪个分支中。

是否有任何方法可以搜索文件的所有修订版本跨所有分支,并找到文件包含特定文本的提交?

1 个答案:

答案 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