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

问题描述 投票:53回答:25

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

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

如果我使用git命令导入项目,它可以工作,但我不想使用EGit执行此任务,因为我是git的新手。

我不知道这是否与它有关,但在同一目录中我有android-adt-bundle。这个工作得很好,但项目在于GitHub,而不是Bitbucket。此外,我正在与另一个人合作,他能够从Bitbucket存储库获取数据并将数据推送到Bitbucket存储库。我看了很多帖子,但没有一个人帮助过我。

我正在使用Windows 7顺便说一句。

eclipse git bitbucket egit atlassian-sourcetree
25个回答
113
投票

也可能是糟糕的SSL证书,修复服务器

如果你有一个带有过时或自签名SSL证书的GIT服务器修复服务器,那么一切都应该运行正常。

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

以下解决方案仅仅是客户端上的一个修补程序,应该避免,因为它会破坏您的凭据和内容的安全性。在“How can I make git accept a self signed certificate?”中有一个详细的解释,它提供了更复杂和更安全的解决方案,如果以下工作一般可以尝试。

在我的例子中,Eclipse使用不同的存储为git配置,因为命令行,因此没有选项

git config http.sslVerify false

set(我使用repo for working with invalid/untrusted SSL cert的命令行设置)。

在Eclipse中添加选项会立即解决问题。添加选项

  1. 通过应用程序菜单Window => Preferences(或在OSX Eclipse => Settings上)打开首选项。
  2. 导航到Team => Git => Configuration
  3. 单击Add entry...,然后将http.sslVerify放入密钥框,将false放入值框中。

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


2
投票

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

对于我在eclipse.ini文件中添加TLS版本后的解决方案工作

Dhttps.protocols = TLSv1.1,TLSv1.2工作

对于java7需要添加TLSv1.1并且对于java8需要TLSv1.2

注意:一旦添加上面的配置,需要重新启动eclipse。


1
投票

我刚刚得到了同样的错误,“无法打开git-upload-pack”,在Eclipse中使用BitBucket repo试图进行拉动或推动。我通过将本地分支(Team / Switch To)切换到主分支并执行拉动来解决它,然后切换回我正在处理的分支并再次拉动。


1
投票

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

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


1
投票

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


1
投票

对于仍然存在此问题的人,上述解决方案均不适合您: 更新您的java和Eclipse版本。 在我的情况下,我从java 7更新到java 9,Eclipse Mars更新到Eclipse Oxygen,这个问题解决了!


1
投票

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


0
投票

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

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


0
投票

我在Eclipse中设置了代理设置,并且没有通过ssh连接,这导致了错误。


0
投票

我已经尝试了所有这些方法,但它没有用,然后一位同事告诉我Putty Key Generator用于生成1024位的密钥,但现在Putty默认生成2048位密钥,所以你只需要更改“位数”在生成的密钥中“它应该工作。


0
投票

问题还可能是系统时间错误(几年),导致Git证书无效。


13
投票

这是由于以下原因:

1)防火墙。

2)网络问题。

3)代理服务器设置不匹配

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

5)Git代理验证细节


0
投票

我刚刚将网络设置从Native更改为Manual,重启并且错误消失了。

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

Eclipse Network Settings


0
投票

Eclipse Mars 4.5.2中的解决方案:Window - > Preferences - > Team - > Git - > Repository Settings - > AddEntry Key:http.sslVerify Value:false


0
投票

我收到此错误消息,因为我的用户不同于我的git配置中的repo所期望的用户。

这显然会触发上面提到的SSL证书失败。

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


0
投票

要解决SSL问题,您也可以尝试这样做。

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

需要从git安装目录复制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 true


0
投票

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

Screenshot of my network configuration

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


-1
投票

在所有之前的事情之后,我必须报告另一种可能性:

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


8
投票

最后,由于steps outlined in the Eclipse forum,我使它成功:

Set up the SSH key stuff

  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命令shell(常规DOS命令shell将无法工作)。
  4. 在Git-Bash shell中根据您的电子邮件(您在github上注册的电子邮件)生成一个rsa密钥:ssh-keygen -t rsa -C“[email protected]”并输入您的密码并在询问时确认。
  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 [email protected]

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

ssh -v [email protected]

假设这有效......

In Eclipse, configure the remote push

  1. 窗口>显示视图> Git> Git存储库将添加存储库资源管理器窗口。
  2. 在存储库窗口中,选择存储库并展开并右键单击“远程”,然后选择“创建远程”。
  3. 从GitHub存储库页面复制GitHub存储库URI并将其粘贴到URI框中。
  4. 选择ssh作为协议,然后返回到URI框并在开头添加“git +”,如下所示: 混帐+ SSH://[email protected]/UserName/ProjectName.git
  5. 在“存储库路径”框中,删除前导斜杠
  6. 点击下一步并交叉手指。如果您获得“auth fail”,请重新启动Eclipse并再次尝试步骤5。
  7. 当您通过身份验证时,在下一个对话框中为source ref选择“master”,单击“Add all branches spec”和“Finish”。

我没有使用SSH [email protected],而是使用SSH [email protected]

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


6
投票

其中一个原因是Fiddler2配置为解密HTTPS流量。关闭Fiddler2它应该工作正常。


6
投票

经过几个小时的努力,我发现当我在Eclipse中添加条目sslVerify = false时,git配置文件没有更新。

我通过导航到我的.git目录并将config文件更新为:解决了我的问题:

[http]
    sslVerify = false

4
投票

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

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


4
投票

我将-Dhttps.protocols=TLSv1.1,TLSv1.2添加到eclipse.ini并且它正在工作。我用的是java 1.7


3
投票

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


2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.