25

使用 BFG ( https://rtyley.github.io/bfg-repo-cleaner/ ) 清理 repo 时,遇到以下情况:

Protected commits
-----------------

These are your protected commits, and so their contents will NOT be altered:

 * commit ******* (protected by 'HEAD')
4

3 回答 3

46

运行 BFG:--no-blob-protection为我修复了它。

文档在这里:https://rtyley.github.io/bfg-repo-cleaner/,但我没有看到他们真正将其作为摆脱错误的一种手段。

注意:在我的情况下,我已经尝试手动删除文件,而不是使用 BFG,这让我不得不使用--no-blob-protection.

于 2017-11-21T19:56:25.280 回答
13

如果您要使用像 BFG 这样强大的工具,我强烈建议您阅读它的文档(其中说明了这一点),但要回答您的问题:

BFG 默认情况下保持“当前”提交不变。它的作者认为唯一安全的工作流程是手动清理你的 repo 的当前状态,测试一切是否仍然有效,然后使用 BFG 清理历史记录,同时保持当前状态(你已经手动修复)。

如果您有一些您认为没有必要的用例(我经常这样做),可以使用一些选项来更改默认保护(或将其关闭);但如果你想使用这些,你肯定需要阅读文档。

于 2017-04-05T12:31:52.023 回答
3

这是一个很晚的回复,但我遇到了类似的问题。

您是否尝试从 git 存储库及其历史记录中删除文件?你是不是很着急,没有注意到文件处于最近提交的状态,默认情况下 BFG 将其视为受保护?这是今天我的键盘和椅子之间发生的错误。

如果你想清理一个 repo:(1) 使用通常的 git 命令删除不需要的文件,例如,git rm file; git commit(2) 测试没有该文件一切仍然有效,(3) 使用 bfg 重写没有该文件的 repo 历史记录。

于 2020-08-16T11:06:46.183 回答