每当我尝试推送到github时,Git push都会挂起。我正在使用Cygwin和Windows 7. Git函数可以在本地跟踪分支,提供状态,设置全局user.name和user.email以及允许提交。
我还是新人,还在学习。
我输入git push
,git push origin master
或git 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 config --global core.askpass "git-gui--askpass"
这对我有用。可能需要3-5秒才能显示提示,只需输入您的登录凭据即可。
在我的情况下,问题是有一些进程锁定了我的钥匙串访问...
强制退出所有其他应用以确保您的Mac上未锁定钥匙串访问权限
为了完整起见(有时像这样的问题并不像看起来那么复杂):
配置不存在的远程存储库也可能导致此行为 - 我最近发现意外地将我的来源的URL更改为githu.com
。
我遇到过同样的问题。不要担心和搜索无穷无尽的复杂解决方案,只需删除git并重新安装它。
sudo apt-get purge git
sudo apt-get autoremove
sudo apt-get install git
而已。它现在应该工作
我想知道我是否有同样的事情......
这(几乎逐字)来自:
在推送大量文件时,通常会发现自己遇到了这个问题。
如果你有耐心并让文件完成上传,你可能根本不需要做任何事情。祝好运 -
我还有一个问题,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
。
我终于可以再次从命令行推出!
我有两个存储库,推动其中一个工作正常。所以,我比较了他们的.git/config
。非工作人员最后:
[http]
sslVerify = false
工作人员改为:
[credential]
helper = store
改变.git/config
解决了这个问题。
git config --global http.postBuffer 524288000
将数据发送到远程系统时,智能HTTP传输使用的缓冲区的最大大小(以字节为单位)。对于大于此缓冲区大小的请求,使用HTTP / 1.1和Transfer-Encoding:chunked来避免在本地创建大量包文件。默认值为1 MiB,足以满足大多数请求。
这发生在我身上,这是我如何修复的。我使用了Cygwin并且它被绞死所以我尝试在提交时提示输入用户名/密码:
git config --global core.askpass "git-gui--askpass"
一旦我执行git push -u origin master
并输入用户名密码,它仍然挂起但似乎承诺GitHub。
在dos提示符下使用相同的命令:git push -u origin master
Git不会挂起。所以在我的案例中也许与CygWin有关的问题。
尝试创建一个像~/sshv.sh
这样的脚本,它会告诉你ssh的用途:
#!/bin/bash
ssh -vvv "$@"
允许为文件所有者执行~/sshv.sh
文件:
chmod u+x ~/sshv.sh
然后调用你的git push
:
GIT_SSH=~/sshv.sh git push ...
在我的情况下,这帮助我弄清楚我正在使用需要关闭的ssh共享连接,所以我杀死了那些ssh进程并开始工作。
尝试GIT_CURL_VERBOSE = 1 git push ...可能由于代理设置而发生git将试图通过代理服务器到达github.com并且代理没有响应。使用GIT_CURL_VERBOSE = 1将显示IP地址和一些信息。你可以比较ip地址和命令输出“host www.github.com”的ip地址。如果它们不同,那么您可以制作https_proxy =“”并再试一次。
我有同样的问题,完全相同的症状......我正要在绝望中重建我的整个系统))。
我甚至是如此天真地尝试git config --global core.askpass "git-gui--askpass"
,因为有些人在这里建议,但它没有用... git push
仍然冻结...
但后来我发现我的SSH代理有错误。所以我重新启动了ssh-agent和...... PROFIT
结论:当您遇到ssh连接问题时,请务必检查您的SSH代理和SSHD服务器...我很确定这是您的问题(这就是为什么它在重新安装系统后有效)
如果你使用cygwin git或外部git(即github),它值得检查。
如果whereis git
只返回/cygdrive/c/Program Files (x86)/Git/cmd/git.exe
或类似的最好安装cygwin git包,这解决了我的问题。
尝试以下方法;
git config --global core.askpass“git-gui - askpass”
这将提示输入凭据,然后如果凭据正确则“推送”成功。
我以为我的Git Windows屏幕已被击中,但实际上它后面有一个提示符号。检查它并输入你的凭据就是这样。
我只想说我在AWS EC2实例上遇到此问题。当我将其配置为仅允许来自负载均衡器的流量时,我试图从我的EC2实例推出。我更改了规则以允许来自任何地方的HTTP,但它仍然没有解决问题。然后我意识到这是因为我的安全组被配置为不允许通过HTTPS从我的EC2实例出站流量。我没有允许HTTPS入站流量使其正常工作,即使这可能是一个很好的策略,让您可以使用入站HTTPS。
当我的计算机磁盘空间已满时,我就会发生这种情况。删除一些文件并清空垃圾箱进行修复。