小编典典

在所有 Git 历史记录中搜索字符串

all

我有一个代码库,我想将它作为开源推送到 GitHub。在这个 Git
控制的源代码树中,我有某些包含密码的配置文件。我确保不跟踪此文件,并将其添加到.gitignore文件中。但是,我想绝对肯定的是,不会推送任何敏感信息,也许是因为在提交之间有什么东西滑倒了。我怀疑我这样做是否足够粗心,但我想保持
积极态度

有没有办法“grep”所有的
Git?我知道这听起来很奇怪,但是“全部”是指曾经存在的每个文件的每个版本。我想如果有一个命令可以为每次提交转储差异文件,那可能有效吗?


阅读 187

收藏
2022-02-28

共1个答案

小编典典

Git 可以使用 -S 选项搜索差异(在文档中称为 pickaxe )

git log -S password

这将找到添加或删除字符串的任何提交password。这里有几个选项:

  • -p: 将显示差异。如果您提供一个文件 ( -p file),它将为您生成一个补丁。
  • -G: 查找添加或删除的行与给定正则表达式匹配的差异,而不是-S“查找引入或删除字符串实例的差异”。
  • --all:搜索所有分支和标签;或者,使用--branches[=<pattern>]--tags[=<pattern>]
2022-02-28