清除存储库数据

已完成

虽然 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

有关详细信息,请参阅:

快速重写 git 存储库历史记录

从 Git 大型文件存储中删除文件

从存储库中删除敏感数据

BFG 存储库清理器