我试图寻找一个关于减少回购规模的好教程,但没有找到.我如何减少我的repo大小...它大约10 MB,但事情是Heroku只允许50 MB,我不在附近完成开发我的应用程序.
我已经将通常的嫌疑人(日志,供应商,文档等)添加到.gitignore.虽然我最近只添加了.gitignore.
有什么建议?
Von*_*onC 324
git gc --aggressive
是强制修剪过程发生的一种方法(确定:) git gc --aggressive --prune=now
.您还有其他命令来清理回购.不要忘记,有时git gc
单独可以增加回购的大小!
它也可以在a filter-branch
之后用来标记要从历史中删除的一些目录(进一步增加空间); 看到 这里.但这意味着没有人会从您的公共回购中撤离.filter-branch
可以保留备份引用.git/refs/original
,以便也可以清理目录.
最后,正如本评论和这个问题所述 ; 清理reflog可以帮助:
git reflog expire --all --expire=now
git gc --prune=now --aggressive
Run Code Online (Sandbox Code Playgroud)
更完整且可能更危险的解决方案是从git存储库中删除未使用的对象
sen*_*hil 90
谢谢你的回复.这是我做的:
git gc
git gc --aggressive
git prune
Run Code Online (Sandbox Code Playgroud)
这似乎已经成功了.我从大约10.5MB开始,现在只有980KB.
vin*_*zee 18
就我而言,我推送了几个大(> 100Mb)文件,然后继续删除它们。但是它们仍然在我的回购历史中,所以我也不得不将它们从其中删除。
诀窍是什么:
bfg -b 100M # To remove all blobs from history, whose size is superior to 100Mb
git reflog expire --expire=now --all
git gc --prune=now --aggressive
Run Code Online (Sandbox Code Playgroud)
然后,您需要对您的分支施加压力:
bfg -b 100M # To remove all blobs from history, whose size is superior to 100Mb
git reflog expire --expire=now --all
git gc --prune=now --aggressive
Run Code Online (Sandbox Code Playgroud)
注意:bfg是一个可以使用 brew 安装在 Linux 和 macOS 上的工具:
brew install bfg
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
120515 次 |
最近记录: |