16

这是Stackoverflow 上一个问题的后续问题。

我试图从我的本地 git 历史记录中删除大文件,但这个问题中建议的工具(BFG Repo-Cleaner)指出我的私人 GitHub 存储库不是有效的 git 存储库。

我使用的命令是:

java -jar bfg-1.12.12.jar  --strip-blobs-bigger-than 99M https://github.com/name/repo.git

最终导致:

Aborting : https://github.com/name/repo.git is not a valid Git repository.

我找不到解决方案。该工具是否与私有或 https GitHub 存储库不兼容?我将如何使用替代工具git-filter-branch从本地 git 历史记录中删除所有大于 99MB 的文件?

该项目大约 6MB 大,到目前为止只提交了大约 50 次提交,并且没有其他人在处理它。

4

3 回答 3

17

指向本地副本,而不是远程。

您已将您的 GitHub URL 提供给该工具,但他们网站上的使用部分说您应该使用存储库的本地副本:

用法

--mirror首先使用以下标志克隆您的 repo 的新副本:

$ git clone --mirror git://example.com/some-big-repo.git

这是一个仓库,这意味着您的普通文件将不可见,但它是您的仓库的 Git 数据库的完整副本,此时您应该对其进行备份以确保您不会丢失任何东西.

现在您可以运行 BFG 来清理您的存储库:

$ java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git

该页面上还有很多其他好的内容;我建议您在重试之前阅读整个内容。

于 2016-07-17T18:56:02.933 回答
11

我已经使用以下命令解决了这个问题:

第1步

cd some-big-repo.git

第2步

java -jar path/bfg.jar --strip-blobs-bigger-than 100M 

如果您在 repo 目录中,则无需明确提及 repo 名称,它会自动检测 repo 并完成其工作。

于 2020-02-19T07:04:07.063 回答
1

您应该记住,使用 git,您对历史记录所做的一切都必须在本地完成。之后,一旦您满意,就会通过推送到远程存储库来发布。

所以,在这里你必须给出通往本地存储库的路径......

于 2016-07-17T20:49:03.213 回答