Java “Cygwin”;“git克隆”;给予;“远程端意外挂起”;针对Ubuntu 10.04.1

Java “Cygwin”;“git克隆”;给予;“远程端意外挂起”;针对Ubuntu 10.04.1,java,git,cygwin,Java,Git,Cygwin,我正在研究如何让Eclipse(Windows 7)在我们新移植的git CVS存储库上运行,我已经将它放在Ubuntu10.04.1 LTS主机上的gitosis中。所有软件都安装了apt get(git、gitosis等) 尝试签出时,带有egit的Eclipse挂起,因此我正在使用命令行客户端。Cygwin有git和openssh,所以我希望它至少可以工作(这样我们就可以对本地副本使用Eclipse)。为了只做babysteps,我已经在另一台具有更多磁盘空间的Ubuntu主机上克隆了gi

我正在研究如何让Eclipse(Windows 7)在我们新移植的git CVS存储库上运行,我已经将它放在Ubuntu10.04.1 LTS主机上的gitosis中。所有软件都安装了apt get(git、gitosis等)

尝试签出时,带有egit的Eclipse挂起,因此我正在使用命令行客户端。Cygwin有git和openssh,所以我希望它至少可以工作(这样我们就可以对本地副本使用Eclipse)。为了只做babysteps,我已经在另一台具有更多磁盘空间的Ubuntu主机上克隆了gitosis存储库,并尝试在我的Windows设备上克隆它

我收到以下错误消息,这让我有点困惑:

tra@TRA /cygdrive/c/Users/tra/git
$ git clone ravn@10.49.160.91:/home/ravn/cvs2git/git00
Cloning into git00...
Enter passphrase for key '/home/tra/.ssh/id_rsa':
remote: Counting objects: 64045, done.
remote: Compressing objects: 100% (17965/17965), done.
fatal: The remote end hung up unexpectedly.98 MiB | 8.21 MiB/s
fatal: early EOFs:  98% (62852/64045), 310.98 MiB | 8.21 MiB/s
fatal: index-pack failed
git在Ubuntu中是1.7.0.4,在Cygwin中是1.7.2.3。scp和sftp工作得很好

我需要知道什么巫术才能让这一切顺利进行吗?

  • 首先,您应该将您的公共ssh密钥发布到
    10.49.160.91:/home/ravn/.ssh/authorized_keys
    文件,以便不再需要输入您的密码短语

  • 其次,这种错误通常发生在互操作环境中,文件名称相同,大小写不同。
    你能检查一下这里是否有这样的问题吗

还要确保:

  • 检查
    core.ignorecase
    是否设置为false(默认值)

另一种选择是(正如OP Thorbjørn所发现的那样),基于mingw(而不是与cygwin打包的git)尝试从中进行git签出。

我想我遇到了同样的问题。对我来说,解决这个问题的方法是使用CygwinGit和PuTTY for ssh,而不是Cygwin的ssh

由于Cygwin邮件列表线程中的信息,我尝试了PuTTY解决方案:

  • [1] :“git和openssh问题”
这个Cygwin邮件线程似乎也指出了Cygwin/OpenSSL/Git for Git version 1.7.1中的一些问题(我在Git 1.7.3.3上,因此问题可能跨越多个版本):

  • [2] :“git已停止使用1.7.1”
如果您已经有了一个有效的Cygwin Git+Cygwin ssh配置,那么您可能不需要从头开始。对我有效的是

  • 从putty网站下载puttygen.exe、plink.exe、pageant.exe和putty.exe
  • 运行puttygen.exe将现有的Cygwin.ssh私钥转换为PuTTY.ppk私钥,然后将其保存在某个位置
  • 运行pageant.exe,加载PuTTY私钥并授权
  • 接下来,将putty.exe运行到要从Git访问的主机上,以便将主机保存到Windows注册表中的ssh主机列表中
  • 最后,您需要将Git配置为使用PuTTY而不是Cygwin ssh。为此,请将环境变量GIT_SSH设置为指向plink.exe可执行文件。例如,
    export GIT_SSH=/cygdrive/c/somedirectory/plink.exe

  • HTH

    您是如何创建密钥的

    您是从类似cygwin的shell中使用cygwin,还是从类似GitBash的shell中使用MingwGit

    我认为真正的问题是cygwin的ssh在/home/name/.ssh中查找.ssh,而mingw的git ssh在c:/user/name/.ssh中查找.ssh

    您的密钥很可能位于其中一个目录中

    您可以尝试使用-i开关告诉cygwin的.ssh使用不同的标识文件,或者将密钥移动到两个目录中,或者在/home/name/.ssh/config中创建一个ssh配置文件

    我创建了一个配置,其中包含:

    Host github.com
        User jerryasher
        Hostname github.com
        IdentityFile c:/Users/jerry/.ssh/id_rsa
    

    考虑到我可以使用git bash中的mingw git或rxvt中的cygwin git与github交互。

    谢谢。现在,我将接受授权密钥丢失的情况,因为它告诉我,另一端可以识别该密钥。事实证明,msysgit中的git可以检出文件,所以我现在将使用它,稍后再返回cygwin。@Thorbjørn:这一点很好。我在回答中添加了您的建议(使用msysgit而不是cygwin git)。今天的一项调查显示,出于某种原因,egit 0.9挂在我们的存储库上,但egit 0.10没有挂起。因此我再次开始研究egit。问题肯定是cygwin上的ssh,我认为这与时间有关。在这里,它总是发生在虚拟机中,但不是在独立的Windows环境中。它还与名称解析有关。当您在c:/Windows/System32/drivers/etc/hosts中输入ip地址时,它会工作。