清除存储库数据

已完成

尽管 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

有关详细信息,请参阅:

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

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

从存储库中删除敏感数据

BFG Repo Cleaner.