我的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服务器。我忘记删除新的裸回购,从远程PC上执行第一次提交将无限期地挂起。

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

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

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

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

我有同样的问题,原来我有一个旧版本(我删除了,但有相同的名称)的回购连接到Heroku。当我断开它时,它完成了推送。

此问题可能是由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是不同的命令选项。

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

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

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