git推送到Microsoft Azure时出现HTTP 413错误



我在一个微软论坛上问了这个问题,答案说我应该在另一个微软论坛上问。那个论坛说我应该问一下自动MS的事情或者来这里。简而言之,我不指望微软能帮我解决这个问题。无论如何…

我正在将一些repos从Mercurial迁移到Git(使用快速导出)。实际的转换是好的:历史是完全完整的,分支都在那里。

然而,我不能把这些新的仓库推送到MS Azure。我将在这里介绍最大的(也是最关键的)问题。它给出如下错误:

$ git push -u origin --all
Enumerating objects: 138051, done.
Counting objects: 100% (138051/138051), done.
Delta compression using up to 12 threads
Compressing objects: 100% (43406/43406), done.
Writing objects: 100% (138051/138051), 202.73 MiB | 76.12 MiB/s, done.
Total 138051 (delta 94104), reused 137561 (delta 93696), pack-reused 0
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date

存储库只有1gb多一点,而包文件是其中的大部分。为了避免庞大的文件妨碍我推送,我使用了git打包,并将其分解为10 ~100MB的文件。我没有在Azure上设置最大推送大小,这个repo中没有一个文件超过100 MB。

我在几个网站上读了很多帖子,但是他们的建议没有帮助。我的配置文件设置如下。(我们的主要分支叫做"生产")

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignoreCase = false
[branch "Production"]
remote = origin
merge = refs/heads/Production
[http]
postBuffer = 2147483648
[remote "origin"]
url = ********
fetch = +refs/heads/*:refs/remotes/origin/*

我可以推到GitHub没有任何问题,即使我离开包文件作为一个单一的1GB文件。我也可以将repo从GitHub导入到Azure(仍然使用1gb的包文件),但我的老板想知道是否有办法消除中间步骤。

我运行的是Windows 11,我试过从命令行推送,PowerShell, Git Bash和Git Extensions,结果都是一样的。我甚至试过在Windows 11的Linux VM上推送,但是我没有运气。

如果我做错了什么,我想知道是什么以及如何做正确。

一个同事建议使用SSH而不是HTTPS,它工作得很好!希望其他遇到同样问题的人也能从这个解决方案中受益。

最新更新