导入到Eclipse(m2eclipse,eGit)时出现“无效的远程:origin”错误

13

在Eclipse中,当我尝试从存储库导入项目(文件>导入> Maven>从SCM检出Maven项目)时,我选择'git'(已安装eGit),填写ssh://...地址(所有密钥和访问权限都设置好了),最后输入rsa密码并...

Invalid remote: origin: Invalid remote: origin

根据这个链接:http://youtrack.jetbrains.com/issue/IDEA-77239,在地址结尾加上.git应该可以解决问题,但实际上并没有。

我完全不知道如何进一步解决它。有什么想法吗?

编辑:我使用的是 Windows。这似乎是一个重要的信息需要补充。


尝试安装msysgit并查看是否可以使用附带的Git Bash访问存储库。这应该比使用Eclipse插件更好地了解任何问题。 - codemonkey
@codemonkey 当我尝试在msysgit中克隆项目时,我收到了R access for tracker-android DENIED to [username](或给定路径上可能没有存储库。您拼写正确吗?)fatal: The remote end hung up unexpectedly的错误提示。看起来我犯了一些常见的错误。但是,我仍然不知道是什么错误。 - alex
错误信息非常清楚,有两个可能的问题。您在使用msysgit时使用的URL是什么?它需要采用user@my.git.server:gitrepo的形式。如果路径正确且存储库确实存在,则如错误消息所述 - 您没有权限。因此,请检查您的SSH密钥。 - codemonkey
@codemonkey,就像你说的一样,也正如我所想的那样——权限问题很简单。服务器上没有授予我所有必要的权限。感谢你的提示! - alex
5个回答

12
这个错误可能是由于底层SSH验证问题引起的,比如在git远程服务器上有错误的公钥,或者如果git远程服务器更改了其SSH主机密钥等。Eclipse将使用您在“首选项”->“常规”->“网络连接”->“SSH2”中指定的.ssh目录进行ssh配置。请将其设置为“{您的默认用户目录}.ssh\”。要修复问题,首先需要确定您正在使用哪个Git SSH客户端。这存储在GIT_SSH环境变量中。右键单击“计算机”(Windows 7),然后选择“属性”->“高级系统设置”->“环境变量”。如果GIT_SSH包含到plink.exe的路径,则表示您正在使用PuTTY堆栈。 若要获取您的公钥,请打开PuTTYgen.exe,然后加载您的私钥文件(* .ppk)。列出的公钥应与git远程服务器上的公钥匹配。要获取新的主机密钥,请打开一个新的PuTTY.exe会话,然后连接到git@{git repo host}。然后点击“确定”并选择“是”以存储新密钥。一旦您获得登录提示,可以关闭PuTTY窗口。新密钥已被存储。重启Eclipse即可。如果GIT_SSH包含您“Git for Windows”树中“ssh.exe”的路径,则表示您正在使用Git for Windows的OpenSSH。请将%HOMEDRIVE%设置为默认用户目录的驱动器号。要获取您的公钥,请在文本编辑器中打开文件%HOMEDRIVE%%HOMEPATH%/.ssh/id_rsa.pub(或id_dsa.pub)。列出的公钥应与git远程服务器上的公钥匹配。要获取新主机密钥,请运行:cmd.exe, 运行Git Bash, Ctrl-C,在bash提示符下运行/c/path/to/git/for/windows/bin/ssh.exe git@{git remote host}。输入yes以接受新密钥。一旦您获得登录提示,请键入:Ctrl-C,关闭cmd.exe窗口,重启Eclipse即可。最后,如果您仍然遇到外部ssh客户端的问题,请删除GIT_SSH环境变量,并将HOME环境变量设置为Windows上默认用户目录。没有GIT_SSH变量,EGit将使用其内部ssh客户端(java)。它将使用您上面指定的.ssh目录作为其SSH配置目录。注意:如果您拥有Git for Windows,则可以使用其工具在.ssh目录中创建SSH密钥对。
  • 将%HOME%设置为您的默认用户目录(在Eclipse中列出)。
  • 将%HOMEDRIVE%设置为默认用户目录的驱动器号。
  • 将%HOMEPATH%设置为%HOMEDRIVE%上默认用户目录的路径。
  • 运行Git Bash。
  • 按Ctrl-C。
  • 运行:ssh-keygen.exe -t rsa -b 2048。
  • 保存为默认文件名。
  • 选择一个口令或不加口令保存。如果您使用口令保存,则每次从git远程服务器推送或拉取时,Eclipse都会提示您输入口令。
  • 关闭Git Bash。

您还可以在Eclipse中的SSH2首选项窗格中使用GUI管理主机和密钥。


我没有这两个东西,所以我从http://git-scm.com/download/win安装了Git SCM,然后在项目文件夹中加载了Git GUI。这似乎已经解决了Eclipse中的问题。 - mrswadge
类似的问题也困扰了我,我在使用eclipse/mac时遇到了安全存储的问题,删除GIT密钥解决了这个问题。 - chrismarx

2

使用Eclipse / Indigo,配合Maven插件:

  • Check out Maven Projects from SCM

  • assuming that the git SCM plugin is installed, select "git" from the SCM URL: popup

  • enter, e.g.:

    https://<username>@github.com/<username>/<projectname>.git
    

    having @ and ".git" is important

  • assuming that the project is private, you will be prompted for the password

这应该足以继续前进了。


这实际上是正确的方向。 对于通常使用https进行git操作的人来说,协议:"git",url:"https://github.com/account/repo.git"可能会起作用。 - laurelnaiad

1
也许你的Git服务器已经迁移?

enter image description here


这对我来说是完美的答案 :) - Benoy Prakash

0

这个错误可能是由以下原因引起的 -

  1. 请检查代码库 URL,结尾应该有'.git'。
  2. 如果你的网络配置发生了变化,请确保你有正确的代理配置,并且在安全的 git 仓库中,确保提供了正确的凭据。(当我的凭据更改时,我遇到了这个错误,也遇到了配置不正确的代理。)

PS - 要检查网络设置,请转到 Windows -> 首选项 -> 常规 -> 网络连接。如果你不确定网络设置或代理配置,可以尝试在直接和手动网络设置之间切换。


0

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