You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移Azure DevOps Git仓库至GitHub,LFS推送成功但Git推送被拒

解决GitHub拒绝推送(未知LFS对象)的方案

你的核心需求是不迁移LFS对象,之前执行git lfs push new-origin --all反而违背目标——这步是把LFS对象推送到GitHub,但你需要让仓库不再依赖LFS,把原LFS指针替换为实际文件内容。按以下步骤操作:

步骤1:确保本地获取到所有LFS文件

若已完成克隆和LFS拉取,可跳过此步:

git clone <azure devops repo>
cd <repo-name>
git lfs fetch --all origin

步骤2:将LFS指针转换为普通文件(移除LFS依赖)

用git lfs migrate重写仓库历史,把所有LFS管理的文件替换为实际内容:

# 遍历所有分支,将所有LFS文件转为普通Git文件
git lfs migrate export --everything --include="*"

该命令会修改所有提交记录,把LFS指针替换为对应的实际文件内容,让仓库彻底脱离LFS依赖。

步骤3:清理LFS配置规则

  1. 打开仓库根目录的.gitattributes文件,删除所有和LFS相关的配置行(例如*.psd filter=lfs diff=lfs merge=lfs -text这类条目)。
  2. 提交配置更改:
git add .gitattributes
git commit -m "Remove LFS configuration rules"

步骤4:推送到GitHub新仓库

git remote add new-origin <github repo>
# 强制推送所有分支(因历史已重写,需覆盖远程分支)
git push -u new-origin --all --force
# 若需要推送标签,执行:
git push new-origin --tags --force

失败原因说明

你之前的操作中,git lfs push虽显示成功,但GitHub接收Git推送时,会校验仓库内的LFS指针是否对应GitHub LFS存储中的对象。而你的目标是不使用LFS,因此必须通过重写历史移除LFS依赖,而非推送LFS对象。

内容的提问来源于stack exchange,提问作者Mickey Cohen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:16:06