清除存储库数据
虽然 Git 的优点之一是能够有效地保存存储库的长期历史记录,但有时需要清除数据。
最常见的情况是想要:
- 通过删除历史记录显著减少存储库的大小。
- 删除意外上传的大型文件。
- 删除不应上传的敏感文件。
如果将敏感数据(例如密码、密钥)提交到 Git,则可以将其从历史记录中删除。 通常使用两种工具:
git filter-repo 工具
git filter-repo 是用于重写历史记录的工具。
其核心筛选器存储库包含用于创建历史记录重写工具的库。 具有专用需求的用户可以快速创建全新的历史记录重写工具。
注意
有关更多详细信息,请参阅存储库 git-filter-repo。
BFG Repo-Cleaner
BFG Repo-Cleaner 是一种常用的开源工具,用于删除或“修复”存储库中的内容。 比 git filter-branch 命令更容易使用。 对于单个文件或一组文件,请使用 --delete-files 选项:
$ bfg --delete-files file_I_should_not_have_committed
以下 bash 演示如何查找名为 passwords.txt 的文件存在于存储库中的所有位置。 此外,若要替换其中的所有文本,可以执行 --replace-text 选项:
$ bfg --replace-text passwords.txt
有关详细信息,请参阅: