我的git推送在完成推送后被挂起。我要去 git推

Counting objects: 51, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (47/47), 27.64 MiB | 6.47 MiB/s, done.
Total 47 (delta 4), reused 0 (delta 0)

它挂在这里,我必须control-c才能回到命令行。我已经在过去与这个项目没有问题的几次提交。我在我的机器上尝试过其他的回购,它们工作得很好。这是怎么回事?


当前回答

我在推送到GitHub时也遇到了同样的问题。我发现有一部分被推送的文件没有被接受。

我发现这是通过把我的大提交分解成小的提交(正如这个SO问题所描述的:把以前的提交分解成多个提交),然后在大多数小的部分中找到成功。

问题部分包含图像文件,我仍在整理哪个特定文件(或多个文件)触发了问题。

其他回答

它可以(正如公认的答案所暗示的那样)等待片刻,但在大多数情况下,它与远程上的权限相关联。 虽然在GitHub、Gitlab或Bitbucket等公共git服务上大多数情况下都不是问题,但自托管远程服务器可能有一个特殊的用户或组来访问。

在新的裸存储库中,改变文件夹是不够的, 但需要递归,因为里面有。git- folder。

在我的例子中,遥控器的磁盘已经满了。删除远程上的一些文件立即解决了这个问题。

https://git-scm.com/docs/git-config#Documentation/git-config.txt-httppostBuffer

http.postBuffer Maximum size in bytes of the buffer used by smart HTTP transports when POSTing data to the remote system. For requests larger than this buffer size, HTTP/1.1 and Transfer-Encoding: chunked is used to avoid creating a massive pack file locally. Default is 1 MiB, which is sufficient for most requests. Note that raising this limit is only effective for disabling chunked transfer encoding and therefore should be used only where the remote server or a proxy only supports HTTP/1.0 or is noncompliant with the HTTP standard. Raising this is not, in general, an effective solution for most push problems, but can increase memory consumption significantly since the entire buffer is allocated even for small pushes.

决议

将Git缓冲区大小增加到回购中最大的单个文件大小 Git配置——global http。postBuffer 157286400 参考Git推送失败的解决方案-客户端打算为ngnix反向代理配置发送太大的块体。将此参数增加到回购中最大的单个文件大小。 绕过出站代理,因为git出站代理而无法克隆或拉取

只是想加上这个,也许能帮到谁。 我遇到了同样的问题,问题是git用户没有写入文件的权限,只能从文件中读取。

在我的情况下,这是由msysgit 1.9.5的问题引起的。降级到msysgit 1.9.4解决了这个问题。