克隆或推送git存储库时在Eclipse中出现“无法打开git-upload-pack”错误

我无法在Eclipse的Bitbucket上克隆或推送到git存储库:

Error 'cannot open git-upload-pack'

很奇怪,因为前一天我没有任何问题。 我已经下载了3次,没有运气。 此错误一直显示。 我还安装了SourceTree,它说“这不是有效的源路径/ URL”:

Error 'This is not a valid source path / URL' in sourcetree

如果我使用git命令导入项目,那么它可以工作,但是由于我是git的新手,所以我不打算将EGit用于此任务。

我不知道这是否与它有关,但是在同一目录中有android-adt-bundle。 这个程序运行良好,但是该项目位于GitHub而非Bitbucket上。 另外,我正在与另一个人一起工作,他能够从Bitbucket存储库中获取数据并推送数据。 我读了很多帖子,但是没有一个可以帮助我。

我正在使用Windows 7。

26个解决方案
113 votes

也可能是不良的SSL证书,请修复服务器

如果您的GIT服务器具有过时的或自签名的SSL证书修复程序,则此后一切都应正常运行。

不安全的修补程序:让客户端接受任何证书

以下解决方案仅是客户端的修补程序,应避免使用,因为它会损害凭据和内容的安全性。 “如何使git接受自签名证书?”对此有详细说明。 如果以下各项可以正常使用,则可以提供更复杂,更安全的解决方案。

就我而言,这是Eclipse使用git config的不同存储方式,就像命令行一样,因此没有该选项

git config http.sslVerify false

设置(我使用命令行为存储库使用无效/不受信任的SSL证书进行设置)。

在Eclipse内部添加选项可以立即解决该问题。 添加选项

  1. 通过应用程序菜单窗口=>首选项(或在OSX Eclipse =>设置上)打开首选项。
  2. 导航到团队=> Git =>配置
  3. 单击Add entry...,然后在密钥框中输入http.sslVerify,在值框中输入false

似乎是不同操作系统上的Eclipse 4.4(Luna),4.5.x(Mars)和4.6.x(Neon)的有效解决方案。

NextThursday answered 2019-11-08T07:14:32Z
13 votes

发生这种情况的原因如下:

1)防火墙。

2)网络问题。

3)代理设置不匹配

4)通过不同的路由器连接-网络内部未授权。

5)Git代理身份验证详细信息

Sireesh Yarlagadda answered 2019-11-08T07:15:31Z
7 votes

最后,由于Eclipse论坛中概述的步骤,我使其得以工作:

设置SSH密钥

  1. 根据[http://help.github.com/win-git-installation/]上的github指示下载并安装mysys git。
  2. 在C:/ Users / you / ssh中,将子目录中的所有现有键(id_rsa和id_rsa.pub)隐藏。 如果ssh目录不存在,请创建它。 当然,操作系统知道您时,“您”是您的用户名。
  3. 在开始菜单中,运行Git-Bash命令外壳程序(常规的DOS命令外壳程序将不起作用)。
  4. 在Git-Bash shell中,根据您的电子邮件(您在github上注册的电子邮件)生成一个rsa密钥:ssh-keygen -t rsa -C“ you@wherever.com”并输入您的密码,并在询问时确认。
  5. 上一步应该已经创建了C:/User/you/ssh/id_rsa.pub,您现在可以在文本编辑器中打开它并进行复制。 在github上,转到帐户设置,SSH密钥,添加密钥并将其粘贴在密钥框中。
  6. 再次在Git-Bash中(注意下一行中的向后标记): eval `ssh-agent` ssh-add C:/User/you/ssh/id_rsa ssh git@github.com

这是您刚刚执行的操作:您运行了ssh-add所需的ssh-agent。 然后,您使用ssh-add记录了密钥的位置。 然后,您尝试SSH到GitHub。 对最后一个命令的响应应该是您已经在GitHub上成功进行了身份验证,但是您没有shell访问权限。 这只是一个身份验证测试。 如果身份验证不成功,则必须进行分类。 尝试详细版本:

ssh -v git@github.com

假设这可行...

在Eclipse中,配置远程推送

  1. 窗口>显示视图> Git> Git存储库将添加一个存储库资源管理器窗口。
  2. 在存储库窗口中,选择存储库,然后展开并右键单击“远程”,然后选择“创建远程”。
  3. 从GitHub存储库页面复制GitHub存储库URI,然后将其粘贴到URI框中。
  4. 选择ssh作为协议,然后返回URI框并在开头添加“ git +”,因此如下所示:

    git + [ssh://git@github.com/UserName/ProjectName.git]

  5. 在“存储库路径”框中,删除前导斜杠

  6. 点击下一步,然后用手指交叉。 如果您的验证失败,请重新启动Eclipse,然后再次尝试步骤5。
  7. 通过身份验证后,在下一个对话框中为源引用选择“主”,然后单击“添加所有分支规范”和“完成”。

我不是使用SSH git@github.com而是使用SSH git@bitbucket.org做到了。

现在,我可以毫无问题地进行推送和导入了。

kiduxa answered 2019-11-08T07:18:36Z
6 votes

原因之一是将Fiddler2配置为解密HTTPS通信。 关闭Fiddler2,它应该可以正常工作。

Aaron Axvig answered 2019-11-08T07:19:01Z
6 votes

经过几个小时的努力,当我在Eclipse中添加条目.git时,我发现git config文件未更新。

我导航到.git目录并将config文件更新为:

[http]
    sslVerify = false
Radouane ROUFID answered 2019-11-08T07:19:37Z
5 votes

我将-Dhttps.protocols=TLSv1.1,TLSv1.2添加到了eclipse.ini,并且可以正常工作。我使用Java 1.7

liox answered 2019-11-08T07:20:03Z
4 votes

当您使用本地防火墙阻止您的应用程序能够从您的计算机发送任何网络流量时,可能会导致此问题。 即 出站流量或出口流量规则。

请尝试禁用防火墙以进行快速测试,以查看是否可以解决您的问题。 如果确实如此,则为您尝试用来推送或拉到git存储库的应用程序设置适当的防火墙策略。

user560663 answered 2019-11-08T07:20:36Z
3 votes

就我而言,事实证明“首选项->网络连接”中的全局代理设置会干扰git。 这有点令人困惑,因为git具有代理配置的专用属性。 无论如何,我已经将存储库主机添加到“代理绕过”列表中,问题就消失了。

iTake answered 2019-11-08T07:21:06Z
3 votes

最近我遇到了与现有存储库相同的问题。当我尝试从上游无法获取的对象获取并出现日食问题时:无法打开git-upload-pack。

对我来说,在eclipse.ini文件中添加TLS版本后,下面的解决方案工作

Dhttps.protocols = TLSv1.1,TLSv1.2

对于Java7,需要添加TLSv1.1,对于Java8,需要添加TLSv1.2

注意:添加以上配置后,需要重新启动eclipse。

Hardik Lotiya answered 2019-11-08T07:21:58Z
2 votes

当我安装了装有Windows 8 / Kaspersky的新笔记本电脑时,我遇到了同样的问题。我遇到了日食问题:无法打开git-upload-pack。我也遇到了Maven问题。我也遇到Skype问题。

当我禁用卡巴斯基时,一切都开始正常工作。

Dmytro Pastovenskyi answered 2019-11-08T07:22:33Z
1 votes

在带有BitBucket存储库的Eclipse中,我尝试执行拉动或推入时遇到了同样的错误,“无法打开git-upload-pack”。我通过将本地分支(团队/切换到)切换到主分支并进行拉动来解决,然后又切换回了我正在处理的分支并再次拉动。

kris answered 2019-11-08T07:22:59Z
1 votes

我在Ubuntu 12.04LTS上使用Eclipse Kepler SR2,并尝试使用HTTPS访问内部GitHub。不幸的是,我用来启动Eclipse的底层JVM在服务器的自签名证书上遇到了问题。 切换到用于Eclipse的其他JVM可以使HTTPS连接到我们的GitHub。

创建一个使用不同JDK的简单Eclipse入门,例如 使用OpenJDK:/Eclipse_Kepler_4.4.2/eclipse -vm /usr/lib/jvm/java-6-openjdk-i386/jre/bin

S F answered 2019-11-08T07:23:34Z
1 votes

我遇到了类似的问题。 我只是按照以下步骤1.团队>远程>配置从上游获取...2.提供https:bit bucket uri,然后保存并提取。3.重置项目中的最新提交。 团队>重置>从远程文件夹中选择最新提交4.然后同步工作空间。 团队>同步(以同步角度)5.右键单击项目并覆盖本地副本。6.单击“拉”图标。

zishan paya answered 2019-11-08T07:24:01Z
1 votes

对于仍然存在此问题的人,以上解决方案均不适合您:
更新您的Java和Eclipse版本。
就我而言,我从Java 7更新为Java 9,从Eclipse Mars更新为Eclipse Oxygen,此问题已解决!!!

Upendra answered 2019-11-08T07:24:40Z
1 votes

使用https连接从git导入时将https.sslVerify添加为false ...

Niranjan S answered 2019-11-08T07:25:07Z
0 votes

我遇到了类似的问题,对您的问题的快速解决方案是确保将eclipse.ini文件中的JVM选项设置为使用jre7。 较旧的Jre带有一个较旧的本地策略文件,这将返回错误。 快速说明一下,您需要指向javaw而不是java。

-vmc:\ PROGRA〜2 \ Java \ jre745 \ bin \ javaw.exe-vmargs-Xms40m-Xmx512m-XX:MaxPermSize = 256m-Dsun.lang.ClassLoader.allowArraySyntax = true

rokeefe answered 2019-11-08T07:25:42Z
0 votes

我在Eclipse中设置了代理设置,但未通过ssh连接,这导致了错误。

Dino Velić answered 2019-11-08T07:26:08Z
0 votes

我已经尝试了所有这些方法,但是没有用,然后一个同事告诉我,Putty Key Generator过去曾用1024位来生成密钥,但是现在Putty默认情况下会生成2048位密钥,因此您只需要更改“位数”即可。 在生成的密钥中”,它应该可以正常工作。

muvunyi answered 2019-11-08T07:26:37Z
0 votes

该问题也可能是由于错误的系统时间(几年)导致的,从而使Git的证书无效。

user824276 answered 2019-11-08T07:27:05Z
0 votes

我只是将网络设置从Native更改为Manual,重新启动后错误消失了。

我正在使用RAD 8.0.4.3,并将旧版本的EGit连接到TFS / Git。 ;-)

Eclipse Network Settings

Juan Carlos Puerto answered 2019-11-08T07:27:39Z
0 votes

Eclipse Mars 4.5.2中对此的解决方案:窗口->首选项->团队-> Git->存储库设置-> AddEntry密钥:http.sslVerify值:false

Pawan J answered 2019-11-08T07:28:05Z
0 votes

我收到此错误消息是因为我的用户名不同于git config中的仓库。

这显然会触发上述SSL证书失败。

解决正确的用户问题为我解决了这个问题。

kirenpillay answered 2019-11-08T07:28:49Z
0 votes

要解决SSL问题,您也可以尝试执行此操作。

从bitbucket服务器下载NetworkSolutionsDVServerCA2.crt,并将其添加到ca-bundle.crt

需要从git install目录复制ca-bundle.crt并将其复制到您的主目录

cp -r git / mingw64 / ssl / certs / ca-bundle.crt〜/

然后做这个。 这对我有用cat NetworkSolutionsDVServerCA2.crt >> ca-bundle.crt

git config --global http.sslCAInfo〜/ ca-bundle.crt

git config --global http.sslverify是

RahulMohan Kolakandy answered 2019-11-08T07:29:57Z
0 votes

我终于通过在network configuration上禁用IPv6解决了这个问题

我的网络配置的屏幕截图

请注意,我使用VPN连接。 如果您也这样做,则必须重新启动它。   我很确定,即使您不使用VPN,它也能正常工作。

Savandy answered 2019-11-08T07:30:37Z
0 votes

就我而言,我没有使用GitLab中“克隆”按钮提供的正确URL:GitLab button clone

RotS answered 2019-11-08T07:31:06Z
-1 votes

我必须报告所有先前的可能性之后的另一种可能性:

在eclipse GIT拉操作(通过代理隧道)期间出现“无法打开git-upload-pack”的情况,因此我必须尝试通过浏览器访问相同的GIT URL,最终在代理中正确进行身份验证,并且仅在通过eclipse之后 可以从GIT进行拉取而没有任何错误。 希望有用。

Stefano Scarpanti answered 2019-11-08T07:31:40Z
translate from https://stackoverflow.com:/questions/18813847/cannot-open-git-upload-pack-error-in-eclipse-when-cloning-or-pushing-git-repos