当向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个回答

0
如果您使用Windows凭据管理器,请使用CMD而不是Git Bash。然后,您可以添加身份验证方法以继续。这对我有用。

0

如果您使用的是VSCode,那么可能会出现GitHub VSCode扩展程序想要打开GitHub以进行登录的情况。

如果您点击得太快,那么弹出窗口就会出现,然后即使您从VSCode终端执行它们,所有连续的git push也会被卡住。

解决方案:关闭VSCode,在新窗口中重新打开项目根目录。在提示时跟随链接并登录即可。


0

关闭Virgin Media WebSafe解决了我的问题。假设其他互联网服务提供商也有类似的可切换安全功能。


0

我也遇到了一个问题,即git在Windows 7上的“Writing objects”部分挂起(使用msysgit,来自git的默认Windows客户端),这是我在谷歌上获得的第一个搜索结果,所以我也会在这里发布我的答案。

git config --global core.askpass "git-gui--askpass"不幸地没有起作用,但经过一些调查研究,我发现了Git push halts on "Writing Objects: 100%"上的提示,可以使用git config –global sendpack.sideband false,这个方法非常完美。

我终于可以再次从命令行推送了!


0

这可能适用于其他Windows设置(顺便说一下,我在Windows 7 Pro 32位上遇到了这个问题,并尝试将其推送到Bitbucket而不是Github)。

我尝试重新安装Git并调整安装程序配置。

通过省略OpenSSH设置并选择不使用凭据管理器来使其正常工作,这可能就是其他答案中在GNU / Linux上所解释的SSH代理的名称,因此挂起可能是由于等待一个假定不可用的Windows凭据管理器响应而导致的。


0
所以当您键入并输入git pish-u origin时,GUI应该弹出要求您的凭据。在我的情况下,在键入git pish-u origin之后,直到查看任务管理器并发现某些正在运行的东西,我才确定这是应该弹出以请求您凭据的GUI。我决定结束它的任务。我假设它会在我的gitbash上显示错误,但实际上,该该死的GUI最终出现了,我终于能够继续进行了。

0

我花了几个小时试图修复这个问题,但是所有的建议都没有起作用。出于沮丧,我把整个项目移动到一个备份文件夹中,重新克隆了一个新的项目,然后从备份文件夹中复制回来我的文件。这样就解决了问题!我怀疑问题出在我提交了未在 .gitignore 中排除的 node_module 文件夹上,从缓存中移除并没有起到任何帮助和作用。当我从头开始时,文件大小只有之前的一小部分。


0

对我来说以上方法都没有用。

我尝试了以下方法,它起作用了:

git push --set-upstream origin main


-1

我有两个代码库,其中一个推送正常。所以,我比较了它们的.git/config文件。不正常的那个在结尾处有:

[http]
    sslVerify = false

工作的那个反而有:
[credential]
    helper = store

修改 .git/config 解决了这个问题。


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