含LFS资源的本地Git仓库如何完整推送到新远程仓库
基于本地副本完整重建带LFS的GitLab远程仓库方案
问题原因
此前使用--no-verify参数推送时,仅上传了普通Git提交记录和LFS指针文件,跳过了实际大文件上传到远程LFS存储区的步骤,因此新仓库克隆后缺失大文件导致报错。推送LFS对象卡顿通常由网络超时、大文件分块传输中断、LFS端点配置指向旧远程导致。
操作步骤
- 前置检查:执行
git lfs fsck,确认本地所有LFS对象完整无损坏,无报错即可继续操作。 - 修正LFS远程端点配置,避免推送时指向已删除的BitBucket仓库:
git config lfs.url https://gitlab.com/company/project.git/info/lfs - 调整LFS上传超时参数,避免大文件传输中途断连:
git config lfs.activitytimeout 300 - 单独全量推送本地所有LFS对象到新远程:
若全量推送仍卡顿,可先仅推送master分支关联的LFS对象:git lfs push --all origin2git lfs push origin2 master - LFS对象全部推送完成后,再推送Git提交记录:
如需覆盖远程之前错误的提交内容,执行:
如需同步所有分支和标签,额外执行:git push -f origin2 mastergit push -f origin2 --all git push -f origin2 --tags
验证方法
在本地新建空白目录,克隆GitLab上的新仓库,执行git lfs pull后检查项目大文件可正常访问、项目运行无报错即重建成功。
内容的提问来源于stack exchange,提问作者Shard
相关产品推荐
相关产品推荐

