我正在尝试将存储库从 TFVC 迁移到具有 4 个月历史 的 Git,这是一个巨大的数据。我正在使用
git tfs
将它从 TFVC 的回购分支克隆到我的本地,并尝试通过启用 git lfs
来跟踪大文件和上传来将它推送到一个空的 Git 存储库。
步骤: 我使用 git tfs clone 将一个有 4 个月历史的 TFVC 回购分支文件克隆到我的本地。然后, git remote add origin '空 git repo 的 URL' -- 空 repo 指的是我创建的新 git repo。
启用 LFS
跟踪大文件
做出承诺
使用
git lfs migrate import --include="*.*" --include-ref=refs/heads/master
迁移了 LFS 文件
以上成功地将预先存在的 git 对象转换为 lfs 对象。但是,常规对象仍然保留在 .git 目录中。这些最终会被 git 清理,但要立即清理它们,请运行:
git reflog expire --expire-unreachable=now --all
git gc --prune=now
&尝试使用
git push origin -u -all
推动它
但面临以下错误:
error: RPC failed; HTTP 503 curl 22 The requested URL returned error: 503
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date
##[error]PowerShell exited with code '1'.
Finishing: Migrate whole source code to git (git push)```
这条消息不是来自 Git LFS,而是来自 Git 本身。消息“RPC failed; HTTP 503”意味着服务器端发送了 503 Service Unavailable 并且 Git 无法完成其操作。与所有 5xx 代码一样,这意味着服务器遇到错误,通常只有服务器操作员知道原因和修复方法,在本例中为 Azure DevOps。
因此,为了解决这个问题,您必须询问 Azure DevOps 出了什么问题,并要求他们修复服务器,以便您可以推送数据。您无法在此处更改任何内容或采取不同的方式来完成这项工作,因为这是服务器端错误。