当推送到Github时,Git push会挂起吗?

问题描述 投票:55回答:18

每当我尝试推送到github时,Git push都会挂起。我正在使用Cygwin和Windows 7. Git函数可以在本地跟踪分支,提供状态,设置全局user.name和user.email以及允许提交。

我还是新人,还在学习。

我输入git pushgit push origin mastergit push -u origin master,我得到的只是一个空白行,要求我ctl-c以获得提示。

ssh-keygen -t rsa -C "[email protected]"要求我提供文件名并挂起

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  [email protected]:myherokusite.git (fetch)

heroku  [email protected]: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网址[email protected]: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逃脱了。

花了很多很多小时试图解决这个问题,之前它完美无缺,谢谢。

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

git github cygwin hang git-push
18个回答
59
投票
git config --global core.askpass "git-gui--askpass"

这对我有用。可能需要3-5秒才能显示提示,只需输入您的登录凭据即可。


1
投票

在我的情况下,问题是有一些进程锁定了我的钥匙串访问...

强制退出所有其他应用以确保您的Mac上未锁定钥匙串访问权限


1
投票

为了完整起见(有时像这样的问题并不像看起来那么复杂):

配置不存在的远程存储库也可能导致此行为 - 我最近发现意外地将我的来源的URL更改为githu.com


1
投票

我遇到过同样的问题。不要担心和搜索无穷无尽的复杂解决方案,只需删除git并重新安装它。

sudo apt-get purge git
sudo apt-get autoremove
sudo apt-get install git

而已。它现在应该工作


1
投票

我想知道我是否有同样的事情......

  1. 进入Putty
  2. 单击“已保存的会话”中的“默认设置”。单击加载
  3. 转到连接 - > SSH - >错误
  4. 将“PuTTY的SSH-2'winadj'请求上的”Chokes“设置为On(而不是Auto)
  5. 在树视图中返回会话(列表顶部)
  6. 单击“保存的会话”框中的“默认设置”。单击保存。

这(几乎逐字)来自:

https://tortoisegit.org/issue/1880


0
投票

在推送大量文件时,通常会发现自己遇到了这个问题。

如果你有耐心并让文件完成上传,你可能根本不需要做任何事情。祝好运 -


0
投票

我还有一个问题,git挂在Windows 7上的“编写对象”部分(使用msysgit,来自git的默认Windows客户端),这是我在google中获得的第一个命中,所以我也会在这里发布我的答案。

git config --global core.askpass "git-gui--askpass"不幸没有工作,但经过一些研究后,我发现Git push halts on "Writing Objects: 100%"的提示使用完美的git config –global sendpack.sideband false

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


0
投票

我有两个存储库,推动其中一个工作正常。所以,我比较了他们的.git/config。非工作人员最后:

[http]
    sslVerify = false

工作人员改为:

[credential]
    helper = store

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


0
投票
  1. 有同样的问题。有点困惑,但事情是我做了一个git init - 在root上,这意味着你将无法推动因为你没有任何权利。而是建立一个新用户或在我的情况下,我使用Pi用户并制作了git init - 然后在那里,然后在它上面工作。
  2. git config --global http.postBuffer 524288000

将数据发送到远程系统时,智能HTTP传输使用的缓冲区的最大大小(以字节为单位)。对于大于此缓冲区大小的请求,使用HTTP / 1.1和Transfer-Encoding:chunked来避免在本地创建大量包文件。默认值为1 MiB,足以满足大多数请求。


-1
投票

这发生在我身上,这是我如何修复的。我使用了Cygwin并且它被绞死所以我尝试在提交时提示输入用户名/密码:

git config --global core.askpass "git-gui--askpass"

一旦我执行git push -u origin master并输入用户名密码,它仍然挂起但似乎承诺GitHub。

在dos提示符下使用相同的命令:git push -u origin master Git不会挂起。所以在我的案例中也许与CygWin有关的问题。


24
投票

尝试创建一个像~/sshv.sh这样的脚本,它会告诉你ssh的用途:

#!/bin/bash
ssh -vvv "$@"

允许为文件所有者执行~/sshv.sh文件:

chmod u+x ~/sshv.sh

然后调用你的git push

GIT_SSH=~/sshv.sh git push ...

在我的情况下,这帮助我弄清楚我正在使用需要关闭的ssh共享连接,所以我杀死了那些ssh进程并开始工作。


23
投票

尝试GIT_CURL_VERBOSE = 1 git push ...可能由于代理设置而发生git将试图通过代理服务器到达github.com并且代理没有响应。使用GIT_CURL_VERBOSE = 1将显示IP地址和一些信息。你可以比较ip地址和命令输出“host www.github.com”的ip地址。如果它们不同,那么您可以制作https_proxy =“”并再试一次。


9
投票

我有同样的问题,完全相同的症状......我正要在绝望中重建我的整个系统))。

我甚至是如此天真地尝试git config --global core.askpass "git-gui--askpass",因为有些人在这里建议,但它没有用... git push仍然冻结...

但后来我发现我的SSH代理有错误。所以我重新启动了ssh-agent和...... PROFIT

结论:当您遇到ssh连接问题时,请务必检查您的SSH代理和SSHD服务器...我很确定这是您的问题(这就是为什么它在重新安装系统后有效)


6
投票

如果你使用cygwin git或外部git(即github),它值得检查。

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


5
投票

尝试以下方法;

git config --global core.askpass“git-gui - askpass”

这将提示输入凭据,然后如果凭据正确则“推送”成功。


3
投票

我以为我的Git Windows屏幕已被击中,但实际上它后面有一个提示符号。检查它并输入你的凭据就是这样。


1
投票

我只想说我在AWS EC2实例上遇到此问题。当我将其配置为仅允许来自负载均衡器的流量时,我试图从我的EC2实例推出。我更改了规则以允许来自任何地方的HTTP,但它仍然没有解决问题。然后我意识到这是因为我的安全组被配置为不允许通过HTTPS从我的EC2实例出站流量。我没有允许HTTPS入站流量使其正常工作,即使这可能是一个很好的策略,让您可以使用入站HTTPS。


1
投票

当我的计算机磁盘空间已满时,我就会发生这种情况。删除一些文件并清空垃圾箱进行修复。

© www.soinside.com 2019 - 2024. All rights reserved.