我使用以下BFG Repo Cleaner
使用procedure清理了我的仓库$ git clone --mirror git://example.com/some-big-repo.git
$ java -jar bfg.jar --strip-biggest-blobs 500 some-big-repo.git
$ cd some-big-repo.git
$ git reflog expire --expire=now --all
$ git gc --prune=now --aggressive
$ git push
我可以看到我的本地仓库收缩了1GB。大。我现在遇到的问题是我现在无法找到任何信息,现在我也希望缩小GitHub-repo的大小。怎么做到这一点?
git push
无效,我也尝试了git push origin --force --all
,它给了我这样的错误消息:error: --all and --mirror are incompatible
答案 0 :(得分:5)
我的建议:不要过于担心GitHub报告的回购规模。由于各种原因,它无法准确反映回购的“真实”尺寸。
你真正关心的是这个问题的答案:
您必须下载的数据量才能完全复制您的回购,以及磁盘占用的空间量,这些都是您真正关心的事情(以及几乎相同的数量)。尝试进行全新的克隆,查看传输的数据量以及磁盘占用的空间。它应该与你的收缩回购的大小相匹配。
GitHub控制台(即https://github.com/settings/repositories或GitHub API)中报告的数字对你来说并不重要,这是幸运的,因为它与更重要的人物享有解放和有点醉酒的关系上面,由于使用Git Alternates,git gc
仅在GitHub服务器上定期发生。
旁注:Bitbucket还可以take time更新报告的回购协议大小。
只是因为你在你的回购邮件上本地运行了git gc
,而在他们的你的回购邮件的副本上doesn't mean GitHub have run it,所以他们的回购副本会显得更大虽然当你克隆它时,只发送'必要'信息,所以你会收到你想要的小型回购。
完全披露:我是BFG Repo-Cleaner的作者。
答案 1 :(得分:0)
不使用--all
标志推送,即执行
git push origin --force
这应该照顾它。
编辑:即兴发表评论
推送它
cd repo_directory
git remote add new_origin url/to/new/repo
git push new_origin --mirror
删除远程new_origin
。由于重命名内容后github repo url应该相同,[origin]
中.git/config
的原始条目应保持良好状态,您只需删除添加的新远程。
git remote rm new_origin
答案 2 :(得分:0)
如果可能:
git push --mirror
)