清除存储库数据
尽管 Git 的优势之一是它能够有效地保存存储库的长历史记录,但有时你也需要清除数据。
最常见的情况是你想要执行以下操作:
- 通过删除历史记录显著缩减存储库的大小。
- 删除意外上传的大型文件。
- 删除不应上传的敏感文件。
如果将敏感数据(例如密码、密钥)提交到 Git,可以将其从历史记录中删除。 通常使用以下两种工具:
git filter-repo 工具
git filter-repo 是用于重写历史记录的工具。
其核心 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
有关详细信息,请参阅: