我的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才能回到命令行。我已经在过去与这个项目没有问题的几次提交。我在我的机器上尝试过其他的回购,它们工作得很好。这是怎么回事?


当前回答

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

其他回答

我想把@法比奥的评论附加到最初的帖子上——它帮我解决了这个问题。

我在树莓派上运行自己的临时本地git服务器。我忘记删除新的裸回购,从远程PC上执行第一次提交将无限期地挂起。

这修复了它(运行chown作为根或sudo):

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

将<repo_name>替换为repo的名称。

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

我最近遇到了这个问题,因为我将默认shell从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时使用小写K是不同的命令选项。

Try:

git gc

我把它挂在同一个地方,但文件非常小,所以等待不是答案。解决方案是git gc(垃圾收集)来重新计算repo中的增量。

我也有同样的问题,推动提交到GitHub。在我的案例中,问题出在一个分支。我尝试用一个相对大的提交来推送本地分支,而没有一个远程分支git推送——set-upstream origin <你的分支名称>。我已经设法通过在GitHub上创建一个分支,然后推动提交来解决这个问题。

对我来说,我安装了Bitdefender,这就是导致问题的原因。卸载后一切正常