在克隆或推送git存储库时,无法在Eclipse中打开“git-upload-pack”错误
我无法在Eclipse中的Bitbucket中克隆或推送到git存储库:
这很奇怪,因为前一天我没有任何问题。 我已经下载了三次,没有运气。 这个错误不断显示。 另外我已经安装了SourceTree,它说“这不是一个有效的源path/ URL”:
如果我使用git命令来导入项目,它可以工作,但我不想使用EGit来完成这个任务,因为我是一个git的新手。
我不知道这是否与它有关,但在同一个目录中,我有android-adt-bundle。 这个工作得很好,但是项目在GitHub而不是Bitbucket上。 另外,我正在与另一个人一起工作,他能够从Bitbucket存储库中获取数据并将数据推送到Bitbucket存储库。 我读了很多post,但没有一个帮助我。
我正在使用Windows 7 btw。
也可能是不好的SSL证书,修复服务器
如果您的GIT服务器过时或自签名的SSL证书修复了服务器,事后一切都应该运行良好。
不安全的修补程序:让客户端接受任何证书
以下解决scheme仅仅是客户端上的一个修补程序,应该避免, 因为它会影响您的凭据和内容的安全性 。 在“ 如何让git接受自签名证书? ”中有一个详细的解释,它提供了更复杂和更安全的解决scheme,如果以下工作通常可以尝试。
在我的情况下,它是Eclipse使用不同的存储为gitconfiguration作为命令行,因此没有选项
git config http.sslVerify false
设置(我使用命令行设置为无效/不可信SSL证书工作的回购)。
Eclipse中添加选项立即解决了这个问题。 添加选项
- 通过应用程序菜单Window => Preferences (或OSX Eclipse => Settings )打开首选项 。
- 导航到Team => Git =>configuration
- 单击
Add entry...
,然后将http.sslVerify
放在密钥框中,并在值框中inputfalse
。
似乎是不同操作系统上的Eclipse 4.4(Luna),4.5.x(Mars)和4.6.x(Neon)的有效解决scheme。
这是由于以下原因:
1)防火墙。
2)networking问题。
3)代理设置不匹配
4)通过不同的路由器连接 – networking内部未经授权。
最后,我通过Eclipse论坛中列出的步骤完成了工作:
设置SSH密钥的东西
- 根据http://help.github.com/win-git-installation/上的github说明下载并安装mysys git
- 在C:/ Users / you / ssh中隐藏子目录中的任何现有密钥(id_rsa和id_rsa.pub)。 如果ssh目录不存在,请创build它。 当然,“你”是你的用户名,因为操作系统知道你。
- 从开始菜单中,运行Git-Bash命令shell(常规的DOS命令shell不起作用)。
- 在Git-Bash shell中,根据您的电子邮件(您在github上注册的那个)生成一个rsa密钥:ssh-keygen -t rsa -C“you@wherever.com”,然后input您的密码短语,并在询问时确认。
- 上一步应该已经创build了C:/User/you/ssh/id_rsa.pub,您现在可以在文本编辑器中打开并复制。 在github上,进入帐户设置,SSH密钥,添加一个密钥并粘贴到密钥框中。
- 再次在Git-Bash中(注意下一行的back-ticks):
eval `ssh-agent` ssh-add C:/User/you/ssh/id_rsa ssh git@github.com
这就是你刚刚做的:你运行了ssh-add所需的ssh-agent。 然后你使用ssh-add来logging你的密钥的位置。 然后你尝试SSH到GitHub。 对最后一个命令的响应应该是您已经在GitHub上成功进行身份validation,但是您没有shell访问权限。 这只是一个authenticationtesting。 如果身份validation不成功,则必须将其排除。 尝试详细版本:
ssh -v git@github.com
假设这工作….
在Eclipse中,configuration远程推送
- 窗口 > 显示视图 > Git > Git存储库将添加一个资源pipe理器窗口。
- 在存储库窗口中,select存储库并展开并右键单击远程,然后select创build远程 。
- 从GitHub存储库页面复制GitHub存储库URI并将其粘贴到URI框中。
-
selectSSH作为协议,然后返回到URI框,并在开头添加“git +”,如下所示:
混帐+ SSH://git@github.com/UserName/ProjectName.git
-
在“ 资料库path”框中,删除前导斜杠
- 点击下一步 ,横过你的手指。 如果您的“auth失败”,请重新启动Eclipse并再次尝试第5步。
- 当你通过身份validation时,在下一个对话框中select源代码的“master”,点击“Add all branches spec”和“Finish”。
而不是使用SSH git@github.com我用SSH做了git@bitbucket.org。
现在我可以推送和导入没有任何问题。
其中一个原因是将Fiddler2configuration为解密HTTPSstream量。 closuresFiddler2,它应该可以正常工作。
如果本地防火墙阻止了您的应用程序从您的计算机上发送任何networkingstream量,则可能会导致此问题。 即出站stream量或出口stream量规则。
请尝试禁用防火墙进行快速testing,看看是否可以解决您的问题。 如果确实如此,请为您尝试用于推送或拉入git存储库的应用程序设置适当的防火墙策略。
就我而言,事实certificate,“首选项 – >networking连接”中的全局代理设置正在干扰git。 这有点令人困惑,因为git拥有专用的代理configuration属性。 无论如何,我已经添加了存储库主机“代理绕过”名单,问题已经消失。
挣扎了几个小时之后,我发现在我的Eclipse中添加条目sslVerify = false
时,gitconfiguration文件没有更新。
我通过导航到我的.git
目录并更新config
文件来解决我的问题:
[http] sslVerify = false
当我得到安装了Windows8 / Kaspesky的新笔记本电脑时,我遇到了同样的问题。 我得到了问题eclipse:无法打开git-upload-pack。 我也遇到了问题与maven。 我也遇到了Skype的问题。
当我禁用卡巴斯基时,一切都开始正常工作。
我在Ubuntu 12.04LTS上使用Eclipse Kepler SR2,并尝试使用HTTPS访问内部GitHub。 不幸的是,我启动Eclipse的底层JVM遇到了服务器自签名证书的问题。 切换到不同的Eclipse的JVM得到了HTTPS连接到我们的GitHub工作。
创build一个简单的Eclipse启动程序,使用不同的JDK,例如OpenJDK: /Eclipse_Kepler_4.4.2/eclipse -vm /usr/lib/jvm/java-6-openjdk-i386/jre/bin
我得到了类似的问题。 我只是遵循以下步骤1.团队>远程>configuration从上游获取… 2.提供https:位桶uri然后保存并获取。 3.重置项目中的最新提交。 团队>重置>从远程文件夹中select最新的提交4.然后同步工作区。 团队“>”同步“(在同步透视图中)5.右键单击项目并覆盖本地副本。 6.点击拉图标。
我刚刚得到了这个相同的错误,“无法打开git上传包”,在Eclipse中与BitBucket回购试图做一个拉或推。 我通过切换本地分支(团队/切换到)到主分支并进行拉动,然后切换回我正在工作的分支并再次拉动来解决它。
我有一个类似的问题,并快速解决您的问题是确保您在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
我有我的代理设置在Eclipse中设置,并没有通过SSH连接,这是导致错误。
我已经尝试了所有这些方法,但没有成功,然后一个同事告诉我,Putty Key Generator用来产生1024位的密钥,但现在Putty默认生成2048位密钥,所以你只需要改变“位数在一个生成的密钥“,它应该工作。
这个问题也可能是由于错误的系统时间(几年)造成的,使得Git的证书无效。
我刚刚将networking设置从Native
更改为Manual
,重新启动,错误消失。
我正在使用RAD 8.0.4.3和旧版本的EGit连接到TFS / Git。 😉
Eclipse Mars 4.5.2中的解决scheme:Window – > Preferences – > Team – > Git – > Repository Settings – > AddEntry Key:http.sslVerify Value:false
我得到这个错误消息,因为我有一个不同的用户比我的gitconfiguration预期的回购。
这显然会触发上面提到的SSL Cert失败。
修复正确的用户为我解决了这个问题。
要解决SSL问题,您也可以尝试这样做。
从bitbucket服务器下载NetworkSolutionsDVServerCA2.crt并将其添加到ca-bundle.crt
ca-bundle.crt需要从git install目录复制并复制到你的主目录
cp -r git / mingw64 / ssl / certs / ca-bundle.crt〜/
然后做这个。 这为我工作猫NetworkSolutionsDVServerCA2.crt >> ca-bundle.crt
git config –global http.sslCAInfo〜/ ca-bundle.crt
git config –global http.sslverify true
我必须报告所有先前的可能性:
我在Eclipse的GIT pull操作过程中(通过代理隧道)得到了“无法打开git-upload-pack”,所以我不得不通过浏览器访问同一个GIT URL,最终在代理中正确authentication,只有通过eclipse有可能从GIT拉出来没有任何错误。 希望有用。