我建议使用BFG Repo-Cleaner,这是一种更简单、更快的替代方案,git-filter-branch
专门用于从 Git 存储库中删除私有数据。
使用说明给出了更详细的步骤,但核心只是:下载BFG 的 jar(需要 Java 6 或更高版本)并运行以下命令:
$ java -jar bfg.jar --replace-text replacements.txt my-repo.git
该replacements.txt
文件应包含您想要执行的所有替换,格式如下(每行一个条目 - 请注意不应包含注释):
PASSWORD1 # Replace literal string 'PASSWORD1' with '***REMOVED***' (default)
PASSWORD2==>examplePass # replace with 'examplePass' instead
PASSWORD3==> # replace with the empty string
regex:password=\w+==>password= # Replace, using a regex
将扫描您的整个存储库历史记录,并且所有非二进制文件(大小小于 1MB)都将执行替换:任何匹配的字符串(不在您的最新提交中)都将被替换。
全面披露:我是 BFG Repo-Cleaner 的作者。