将启用 LFS 的本地 Git 存储库推送到空的 Azure Devops 失败

Pushing local Git repo with LFS enabled to an empty Azure Devops fails

我们的任务是将我们的 SVN 存储库移动到 Git 存储库,我快到了,但遇到了最后的障碍。

本地我有:

我收到以下消息并最终出错,AzDevOps 中没有任何显示:

Locking support detected on remote "origin". Consider enabling it with:
  $ git config lfs.https://[redacted]/info/lfs.locksverify true
LFS: Client error: https://[redacted]/info/lfs/objects/bd2cc3927bf072a20412a03bfc58570b8d7c7eaad4737b6c70717baa0c0b697e from HTTP 413
Uploading LFS objects: 100% (684/685), 232 MB | 7.1 MB/s, done.
error: failed to push some refs to 'https://[redacted]'

以防万一我运行建议命令添加锁定配置然后重试。我得到同样的错误,但没有锁定建议。

关于如何调试问题的任何想法?我的 Bingle 技能已经抛弃了我,似乎找不到与我的场景相关的东西。

Azure DevOps 使用 IIS,它与 HTTP/2 有一些不愉快的问题。提到了血淋淋的细节 in the Git LFS issue tracker,但本质上,您收到 413 Request Too Large 这一事实意味着 Azure DevOps 无法优雅地处理超过 HTTP/2 的大文件。这不是 Git LFS 的错误,而是 Azure DevOps 设置其 LFS 服务器的方式的配置问题。其他托管网站没有这个问题。

作为解决方法,您可以 运行

git config http.version HTTP/1.1

这应该允许您正确推送数据。请注意,在 Azure DevOps 修复此问题之前,每个用户在推送超过 128 MB 的文件时都需要进行此配置。