git pull 和 fetch 失败并显示“致命:远程端意外挂起”
从 Win7 上的 cygwin git 我试图与我的 Linux 工作站协调。两者都是从同一个上游存储库克隆的。首先,我执行“git fetch origin”,然后尝试从我的工作站获取。
$ git fetch origin
[... all ok ...]
$ git fetch b
scheib@b's password:
remote: Counting objects: 2031, done.
remote: Compressing objects: 100% (512/512), done.
fatal: The remote end hung up unexpectedly
fatal: early EOFs: 23% (182/789)
fatal: index-pack failed
From cygwin git on Win7 I'm trying to coordinate with my linux workstation. Both were cloned from the same upstream repository. First I do a "git fetch origin", then try to fetch from my workstation.
$ git fetch origin
[... all ok ...]
$ git fetch b
scheib@b's password:
remote: Counting objects: 2031, done.
remote: Compressing objects: 100% (512/512), done.
fatal: The remote end hung up unexpectedly
fatal: early EOFs: 23% (182/789)
fatal: index-pack failed
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Cygwin的ssh.exe有这个bug。将 cygwin 的 ssh.exe 替换为 msysgit 安装中的 ssh.exe,这个问题就会消失。
相关:Git fatal:远程端挂起
Cygwin's ssh.exe has this bug. Replace cygwin's ssh.exe with ssh.exe from a msysgit install, and this problem will go away.
Related: Git fatal: remote end hung up
您是如何创建密钥的?
使用 cygwin 的 git 还是使用 git bash 中的 mingw git?
我相信真正的问题是 cygwin 的 ssh 在 /home/name/.ssh 中查找 .ssh,而 mingw 的 git ssh 在 c:/user/name 中查找 .ssh /.ssh
很可能您的密钥位于这些目录中的一个且仅之一中。
您可以尝试使用 -i 开关告诉 cygwin 的 .ssh 使用不同的身份文件,或者将密钥移到两个目录中,或者在 /home/name/.ssh/config 中创建一个 ssh 配置文件。
我创建了一个配置,其中包含:
鉴于我可以使用 git bash 中的 mingw git 或 rxvt 中的 cygwin git 与 github 交互。
How did you create your keys?
With cygwin's git or with the mingw git in git bash?
I believe the real problem is that cygwin's ssh looks for .ssh in /home/name/.ssh and mingw's git ssh looks for .ssh in c:/user/name/.ssh
Chances are your keys are in one and only one of these directories.
You can trying telling cygwin's .ssh to use a different identity file using the -i switch, or move the keys into both directories, or create an ssh config file in /home/name/.ssh/config.
I created a config that contains:
And given that I can use either the mingw git from git bash or cygwin's git from an rxvt to interact with github.