我的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才能回到命令行。我曾经在这个项目中做过几次提交,现在有了问题。我在我的机器上尝试了其他回购,它们工作正常。这是怎么回事?
答案 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)
答案 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脚本(bash
,sh
,zsh
等)将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,足以满足大多数请求。
分辨率
将 Git 缓冲区大小增加到存储库的最大单个文件大小
git 配置 --global http.postBuffer 157286400
ngnix反向代理配置参考Git push fails - client intended to send too large chunked body解析。将此参数增加到您的存储库的最大单个文件大小。