尝试 BFG 而不是 git filter-branch ...
如果您使用BFG而不是. 创建一个文件,每行一个密码,如下所示:git-filter-branch
passwords.txt
PASSWORD1==>xXxXx # Replace literal string 'PASSWORD1' with 'xXxXx'
ezxcdf\fr$sdd%==>xXxXx # ...all text is matched as a *literal* string by default
然后使用以下命令运行 BFG :
$ java -jar bfg.jar -fi '*.php' --replace-text passwords.txt my-repo.git
将扫描您的整个存储库历史记录,并且所有.php
文件(大小小于 1MB)都将执行替换:任何匹配的字符串(不在您最近的提交中)都将被替换。
...无需转义
请注意,在此处使用替换文件解析 BFG 的唯一一点是拆分 ' ==>
' 字符串 - 这可能不在您的密码中 - 并且默认情况下所有文本都按字面意思解释。
如果你想更简洁,你可以==>
在每一行删除 ' ' 和它后面的所有内容(即,只有一个密码文件***REMOVED***
) ,默认情况下,BFG 将用字符串 ' ' 替换每个密码。
BFG 通常比在大型 repo 上运行快数百倍,git-filter-branch
并且这些选项是围绕以下两个常见用例量身定制的:
全面披露:我是 BFG Repo-Cleaner 的作者。