search所有的Git历史logging的string?
我有一个代码库,我想推到GitHub作为开源。 在这个git控制的源代码树中,我有一些包含密码的configuration文件。 我确保不要跟踪这个文件,我也把它添加到.gitignore文件中。 不过,我想绝对肯定的是,没有任何敏感信息会被推动,也许如果在提交或者其他事情之间出现了某种东西。 我怀疑我是不小心做到这一点,但我想积极 。 
有没有办法“grep”所有的混帐? 我知道这听起来很奇怪,但通过“所有”我想我的意思是每个版本的非常文件。 我猜如果有一个命令为每个提交转储差异文件,这可能工作?
Git可以用-S选项search差异( 在文档中它被称为镐)
 git log -Spassword 
 这将find任何提交添加或删除stringpassword 。 这里有几个选项: 
-   -p:会显示差异。 如果你提供一个文件(-p file),它会为你生成一个补丁。
-   -G:查找添加或删除的行与给定的正则expression式匹配的差异,而不是-S,“查找引入或删除string实例的差异”。
-   --all:search所有分支和标签; 或者,使用--branches[=<pattern>]或--tags[=<pattern>]
 git rev-list --all | ( while read revision; do git grep -F 'password' $revision done ) 
尝试以下命令来search所有以前跟踪的文件中的string:
 git log --patch | less +/searching_string 
要么
 git rev-list --all | GIT_PAGER=cat xargs git grep 'search_string' 
这需要从您想要search的父目录运行。