在 Git 提交历史中搜索特定字符串

本文概述了我们用于在 Git 历史记录中搜索特定字符串的不同方法。

浏览历史记录中的提交消息并不总能成功。 有时您想知道哪些提交受到特定变量或字符串的影响。

我们可以在 git log 命令中添加一些参数来搜索一个字符串,Git 会为我们提供在我们的 repo 历史记录中添加或删除该字符串的提交。 此功能使理解特定代码段的提交上下文变得简单。


在 Git 提交历史中搜索特定字符串

在我们的第一个场景中,我们想要搜索提交消息包含单词 Update 的所有提交。 我们该怎么做?

我们将运行 git log 命令,如下所示。

$ git log --grep=Update

输出结果:

在 git 历史记录中搜索字符串 1

从上面的输出可以看出,Git 只给了我们带有单词 Update 的提交。

假设我们想搜索在文件中添加或删除了“php”字符串的提交。 我们该怎么做?

我们可以使用 -S 标志运行 git log 命令,如下所示:

$ git log -S "php"

输出结果:

在 git 历史记录中搜索字符串 2

要对此进行比较,我们将运行以下命令:

$ git log -S "php" -p | grep "php" -C5

如果您对字符串有很多提交,最好使用 difftool。 你可能会感到困惑,因为 Git 会给你一个大块的输出。

我们还可以使用带有 -G 参数的 git log 命令来搜索添加或删除的行与“php”匹配的差异,如下所示;

$ git log -G "php"

注意:

  1. -G 接受正则表达式,而 -S 接受字符串。
  2. -S 参数将找到单词更改的提交,而 -G 在差异中搜索单词。

我们可以向 git log 命令添加参数来操作输出。 我们讨论了如何使用常见场景在我们的提交历史记录中搜索字符串。

查看笔记

扫码一下
查看教程更方便