如何在克隆前远程配置git-LFS解决大二进制仓库克隆过慢问题
问题结论
支持在不完整克隆原大仓库的前提下完成远程仓库的Git LFS配置,全程不需要拉取总大小10GB的冗余二进制历史文件,操作步骤如下:
操作步骤
- 第一步:执行过滤克隆,仅拉取仓库的提交、目录树结构,不拉取任何文件的实际内容,大幅降低拉取耗时:
git clone --filter=blob:none --no-checkout <你的GitLab仓库地址> cd <仓库目录>
- 第二步:本地完成Git LFS初始化配置,提前指定需要纳入LFS管理的文件规则,比如你提到的无后缀Unix可执行文件,可按文件大小、路径或后缀匹配:
git lfs install # 示例:匹配所有超过100M的文件 git lfs track "*.bin" # 按后缀匹配可替换为你的实际规则 git lfs track --filename "/path/to/executable" # 按固定路径匹配 git add .gitattributes
- 第三步:执行历史改写,将仓库所有历史提交中匹配规则的大文件转换为LFS指针文件:
git lfs migrate import --everything --include-ref=refs/heads/*
- 第四步:确认GitLab项目设置中已开启LFS权限后,将改写后的历史和LFS对象强制推送到远程仓库:
git push --force origin --all git push --force origin --tags
注意事项
- 改写仓库历史会改变所有历史提交的哈希值,推送前请临时关闭目标分支的保护规则,推送后通知所有团队成员删除本地旧仓库,重新克隆新的仓库即可
- 若你不需要保留历史提交中的大文件版本,也可以选择直接拉取最新单提交的浅克隆,再配置LFS后推送,进一步降低操作耗时:
git clone --depth 1 <仓库地址>
内容的提问来源于stack exchange,提问作者Conrad
相关产品推荐
相关产品推荐

