Pus*_*ots 12 git github git-rewrite-history bfg-repo-cleaner
我使用以下程序用BFG Repo Cleaner清理了我的回购:
$ 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
Run Code Online (Sandbox Code Playgroud)
我可以看到我的本地仓库收缩了1GB.大.我现在遇到的问题是我现在无法找到任何信息,现在我也希望缩小GitHub-repo的大小.怎么做到这一点?
git push没有工作,我也试过git push origin --force --all,这给了我这个错误信息:error: --all and --mirror are incompatible
我的建议:不要过于担心GitHub报告的回购规模.由于各种原因,它不能准确反映回购的"真实"尺寸.
你真正关心的是这个问题的答案:
您必须下载的数据量才能完全复制您的回购,以及磁盘占用的空间量,这些都是您真正关心的事情(以及几乎相同的数量).尝试进行全新的克隆,查看传输的数据量以及磁盘占用的空间.它应该与你缩小的回购的大小相匹配.
在GitHub控制台(即https://github.com/settings/repositories或GitHub API)中报告的数字对你来说并不重要,幸运的是,因为它与之有着解放的,有些醉酒的关系.上面更重要的数字,由于使用Git Alternates,并且git gc只在GitHub服务器上定期发生.
旁注:Bitbucket也需要时间来更新报告的回购大小.
仅仅因为你跑git gc你的本地回购,并不意味着GitHub上已经运行在自己的回购协议的副本着呢,所以他们你的回购的副本将出现一会更大,甚至当你复制它虽然,只有"必要的'信息被发送,所以你收到你想要的小型回购.
完全披露:我是BFG Repo-Cleaner的作者.
不带flag的push --all,即do
git push origin --force
Run Code Online (Sandbox Code Playgroud)
这应该能解决它。
编辑:根据评论中的讨论即兴创作
推动它
cd repo_directory
git remote add new_origin url/to/new/repo
git push new_origin --mirror
Run Code Online (Sandbox Code Playgroud)放下遥控器new_origin。由于重命名内容后 github 存储库 url 应该是相同的,因此[origin]in的原始条目.git/config应该保持不变,您只需要删除添加的新远程即可。
git remote rm new_origin
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1381 次 |
| 最近记录: |