将Git仓库迁移至GitHub并适配LFS的正确流程咨询
迁移包含LFS对象的Git仓库至GitHub的最佳流程
你之前操作的问题
你只执行了LFS对象推送,但未推送Git仓库的核心分支、提交记录等数据;如果原仓库未配置LFS追踪大文件,LFS也没有可推送的对象,最终导致GitHub仓库为空。
完整迁移流程
1. 前置准备
确保本地已安装Git LFS,未安装则执行:
git lfs install
2. 处理原仓库中的超大文件(若原仓库未用LFS追踪)
如果原仓库里的大文件(比如你提到的Project/Resources/AssessmentTool.zip)原本没被LFS管理,需要先将其纳入LFS并清理历史:
- 克隆原仓库:
git clone $oldURL cd 仓库目录名 - 追踪目标大文件:
(如果有多个同类型大文件,可用通配符如git lfs track "Project/Resources/AssessmentTool.zip"git lfs track "*.zip") - 提交
.gitattributes配置文件:git add .gitattributes git commit -m "配置LFS追踪超大文件" - 替换历史提交中的大文件为LFS对象(关键步骤,避免历史提交里的大文件触发GitHub限制):
git lfs migrate import --include="Project/Resources/AssessmentTool.zip" --include-ref=refs/heads/* - 将修改推回原仓库(如果有权限):
git push origin --force
3. 镜像迁移至GitHub
完成大文件处理后,进行完整的仓库镜像迁移:
- 克隆原仓库的镜像(包含所有分支、标签):
git clone --mirror $oldURL cd 仓库目录名.git - 添加GitHub作为远程仓库:
git remote add github $newURL - 先推送Git核心数据(所有分支、标签、提交记录):
git push --mirror github - 再推送所有LFS对象:
git lfs push --all github
4. 验证迁移结果
- 登录GitHub查看目标仓库,确认所有分支、标签都已同步
- 克隆新的GitHub仓库,执行
git lfs pull,检查超大文件是否能正常拉取
内容的提问来源于stack exchange,提问作者GLDavid
相关产品推荐
相关产品推荐

