git push在Total line之后挂起

时间:2013-04-05 21:30:12

标签: git bitbucket

我的git push在看似完成推动后挂了。我要去     git push

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)

它挂起来,我必须控制-c才能回到命令行。我曾经在这个项目中做过几次提交,现在有了问题。我在我的机器上尝试了其他回购,它们工作正常。这是怎么回事?

18 个答案:

答案 0 :(得分:79)

事实证明这根本不是问题。我只需要等到上传完成。我添加了几个大文件,没有进度指示器。也许别人会觉得这很有帮助。

答案 1 :(得分:5)

它可以(正如已接受的答案所示)等待一会儿,但在大多数情况下,它与远程权限相关联。 虽然GitHub,Gitlab或Bitbucket等公共git服务主要不是问题,但自托管远程可能有一个特殊用户或一组用于访问。

在新的裸存储库中,更改文件夹并不足够, 但由于.git - 里面的文件夹,需要递归。

答案 2 :(得分:2)

在远程计算机上只有裸仓库的情况下,权限也可能是导致这种情况的原因。

答案 3 :(得分:1)

在我这样做的情况下,它只适用于我 git push -u origin master,当我只是将git push用于比特桶时,它没有推进。

答案 4 :(得分:1)

问题是上传文件很大。

等待它,或者转到项目文件夹,然后删除所有使用maven在目标文件夹中可以找到的库。然后进行推送,它将很快发生。

无论如何,库文件夹不需要存储在git中,除非并且直到它们在maven存储库中不可用并且您确实需要存储它们,否则这只是浪费git空间。

答案 5 :(得分:1)

只是想添加它,以防任何人使用。 我遇到了同样的问题,问题是git用户没有写文件权限,只能从文件中读取。

答案 6 :(得分:1)

等到上传完成后对我不起作用。 我推的文件不是很大,但是等了很久,还挂了。

对我有帮助的是从msysgit 1.9.5更新为git-for-windows 2.6.2

答案 7 :(得分:0)

在我的情况下,遥控器有一个完整的磁盘。删除遥控器上的某些文件会立即解决问题。

答案 8 :(得分:0)

签出git正在使用的用户权限

在我的情况下,我尝试了ssh,使用的系统用户无法写入git裸存储库...

Here是调试ssh连接的方法

答案 9 :(得分:0)

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

答案 10 :(得分:0)

查看您是否已暂存但未提交更改。 (git status

如果是这样,提交(或取消)那些,然后尝试推送。为我工作。

答案 11 :(得分:0)

此问题可能是由您的SSH代理问题引起的。

我最近遇到了这个问题,因为我将默认外壳程序从zsh更改为bash。我最初是使用zsh设置ssh密钥的,因此默认情况下bash不能使用chsh -s /bin/bash使用它们。

要解决此问题,您需要使用与您相同的shell脚本(bashshzsh等)将ssh密钥添加到SSH身份验证代理中正在用来执行您的git命令:

eval `ssh-agent`
ssh-add ~/.ssh/some_key_rsa

您需要输入密钥的密码短语才能添加它。要将密码短语存储到用户钥匙串中,以使您不必在每次使用该密钥时都输入密码,请将带有-K选项的密钥添加到ssh-add命令中。

ssh-add -K ~/.ssh/some_key_rsa

请注意,大写的K是使用小写的命令选项。

答案 12 :(得分:0)

在推送到GitHub时,我遇到了同样的问题。我发现被推送的文件的子集未被接受。

通过将大型提交分解为较小的提交(如此SO问题:Break a previous commit into multiple commits中所述),然后在大多数较小的提交中获得成功,我发现了这一点。

问题片包含图像文件,我仍在筛选哪个或哪些特定文件触发了问题。

答案 13 :(得分:0)

我想将@Fabio的评论附加到原始帖子上-为我解决了这个问题。

我正在Raspberry Pi上运行自己的临时本地git服务器。我忘记了chown的新裸仓库,而从远程PC推送第一次提交将无限期地挂起。

此问题已解决(以root用户身份或以chown运行sudo):

cd /srv/git
chown git:git -R <repo_name>.git

用您的仓库名称替换<repo_name>

答案 14 :(得分:0)

添加另一个本地提交并重试推送对我有用。

答案 15 :(得分:0)

我遇到了同样的问题,结果发现我有一个较旧的版本(已删除但名称相同)连接到Heroku。当我断开连接时,它完成了推送。

答案 16 :(得分:0)

使用此命令:

git remote add origin <url>
git push -f origin master

答案 17 :(得分:0)

<块引用>

http.postBuffer 将数据发布到远程系统时,智能 HTTP 传输使用的缓冲区的最大大小(以字节为单位)。对于大于此缓冲区大小的请求,HTTP/1.1 和 Transfer-Encoding: chunked 用于避免在本地创建大量打包文件。默认为 1 MiB,足以满足大多数请求。

分辨率

  1. 将 Git 缓冲区大小增加到存储库的最大单个文件大小

  2. git 配置 --global http.postBuffer 157286400

  3. ngnix反向代理配置参考Git push fails - client intended to send too large chunked body解析。将此参数增加到您的存储库的最大单个文件大小。

  4. 绕过出站代理,如 Can't clone or pull due to a git outbound proxy

    所述