当向Github推送时,Git push卡住了?

185
每次我尝试推送到GitHub时,Git push都会挂起。我正在使用Cygwin和Windows 7。Git在本地跟踪分支、提供状态、设置全局用户名称和用户电子邮件以及允许提交等方面都很正常。我还是新手,正在学习。
我输入"git push"、"git push origin master"或"git push -u origin master",但什么也没有,只有一个空白行需要我使用ctl-c才能回到提示符。
"ssh-keygen -t rsa -C 'me@example.com'"要求我输入文件名并挂起。
"git push heroku master"也挂起了。
"$ git status"返回"On branch master nothing to commit, working directory clean"。
"$ git pull"返回"Already up to date"。
"$ git remote -v"返回:
heroku  git@heroku.com:myherokusite.git (fetch)

heroku  git@heroku.com:myherokusite.git (push) origin  

https://github.com/gitusername/appname.git (fetch) origin  

https://github.com/gitusername/appname.git (push)

or the correct ssh remote settings are returned when trying this with ssh

更新:使用SSH URL git@github.com:gitusername/gitrepo.git 也会卡住。

git remote set-url origin https://github.com/gitusername/appname.git 是正确的。

更新:我可以看到在卡住时Windows任务管理器中运行的git进程。

我尝试过:

使用不同的互联网连接位置

在https和ssh之间切换,但都会卡住

卸载git。从https://code.google.com/p/msysgit/downloads/list重新安装

卸载git。安装Cygwin的git

卸载git。安装Github for Windows GUI应用程序,我能够推送。但是这个应用程序功能有限,迫使我离开Cygwin窗口进入另一个应用程序,然后迫使我进入Windows命令提示符以获取完整功能,而我原本以为已经通过使用Cygwin逃脱了这种情况。

花费了很多很多时间来解决这个问题,在此之前它一直没有出现过,谢谢。

2014年4月更新:我重建了整个机器Win 7,Cygwin等,现在一切都正常了。


5
你是否在防火墙或代理后面? - Guillaume Darmont
我尝试了不同的互联网连接,但都没有成功,是的,我有杀毒软件,之前从未出现过问题。没有代理。 - Matt Singer
6
有运气吗?我正在使用cygwin时遇到了同样的问题。解决方法:如果我使用本地的Windows shell (cmd.exe),git push origin master 就可以正常工作。 - skilbjo
6
重启电脑对我有帮助。 - ktamas
3
我必须注销VPN。 - 42n4
显示剩余5条评论
39个回答

6

如果您正在使用cygwin git或外部git(即github),那么检查一下是值得的。

如果whereis git只返回/cygdrive/c/Program Files (x86)/Git/cmd/git.exe或类似路径,则最好安装cygwin git软件包,这对我解决了问题。


6

根据GitHub的建议,我设置了Git凭证管理器,解决了我的问题。 - Burhan

5

我今天遇到了同样的问题,解决方法很简单,只需要移除源仓库 git remote remove origin 再重新添加它 git remote add origin https://github.com/username/project.git,然后就可以成功推送了。


4

我以为我的Git窗口卡住了,实际上是一个登录提示框出现在它后面。检查一下并输入你的凭证就可以了。


2
那个登录提示在哪里? - Stefan

4

这个命令对我有用:

git fetch origin

这会将远程仓库的任何更改更新到您的本地仓库,从而解决可能阻止您推送完成的冲突。运行 git fetch 后,您可以运行以下命令:

 git push

尝试再次将您的更改推送到远程存储库。


帮我解决了! - yairchu

3

在我的情况下,cPanel(我的远程服务器)上的新公钥尚未获得授权。我的客户端是一台运行Ubuntu 2020-04的新机器。

git push origin

......工作了,但提示输入cPanel密码。

我猜测git-gui进程挂起,等待我无法输入的密码。

授权我的新密钥后,git-gui工作正常。它确实提示输入密钥库密码。


2

我想说我在我的AWS EC2 实例上遇到了这个问题。当我将其配置为只允许来自负载均衡器的流量时,我尝试从我的EC2实例本身推送,却出现了问题。我更改了规则以允许从任何地方进入HTTP,但仍未解决问题。然后我意识到,我的安全组配置为不允许从我的EC2实例通过HTTPS发送出站流量。我没有允许HTTPS入站流量使其工作,即使对于您来说,有可用的入站HTTPS也是一个好策略。


2
当我的计算机磁盘空间满时,我遇到了这个问题。删除一些文件并清空垃圾箱就可以解决问题。

我遇到了与我的服务器(远程git存储库)磁盘空间完全满的相同问题。 - lauhub

2

请使用Git CMD而不是Cygwin Bash终端。

通过使用Git CMD,我的系统能够在GitHub上验证我的信息。之后,使用bash也可以正常工作。我理解程序试图执行某种身份验证,但由于某些原因无法从bash终端执行。虽然这个答案不是全面的,但它确实能够完成工作。


2

有时候我在Android Studio中推送新分支时会出现挂起的问题,但它并不会显示错误信息。通常,如果我从主分支进行简单的fetch操作,之后就能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接