git clone期间“找不到'https'的远程帮助程序”


243

我无法克隆HTTPS存储库。我可以克隆SSH仓库,但不能克隆HTTPS仓库。由于位于公司防火墙后面,因此无法测试GIT协议。

这就是我想要做的:

$ git clone https://github.com/nvie/gitflow.git
Cloning into gitflow...
fatal: Unable to find remote helper for 'https'

到目前为止,我已经尝试了以下方法(基于Google搜索)

  • 通过清除和安装Git apt-get
  • build-deps通过安装Gitapt-get
  • 安装curl开发库
  • 安装Expat库
  • 下载Git源码并使用以下命令构建:
    • ./configure --prefix=/usr --with-curl --with-expat
    • 还尝试将configure指向curl二进制文件(./configure --prefix=/usr --with-curl=/usr/bin/curl

我已经尝试了所有可以在互联网上找到的一切,但是没有运气。谁能帮我?

Git版本= 1.7.6.4

操作系统= Ubuntu 11.04


很抱歉,听起来好像没有安装curl。这样做curl --help,看看它是否是。
迈克·琼斯,

运行curl --help时,我会返回一份curl选项列表。
Ben K

1
我知道,就像我在问题顶部提到的那样,我已经遍历了在Google中可以找到的所有结果。到目前为止没有任何工作!
Ben K,

2
我有同样的问题。我也在公司防火墙后面。我尝试使用Internet中找到的所有选项重新编译,但根本无法正常工作。还有其他想法吗?

1
有趣的是,我正在尝试从curl的github进行克隆,以便可以在锁定的$&#%^ * Solaris框中对其进行编译。
makhdumi 2015年

Answers:


289

似乎在编译git时未安装(lib)curl-devel可能会导致此问题。

如果安装(lib)curl-devel,然后重新构建/安装git,这应该可以解决问题:

$ yum install curl-devel
$ # cd to wherever the source for git is
$ cd /usr/local/src/git-1.7.9  
$ ./configure
$ make
$ make install

这在Centos 6.3上对我有用。

如果您没有yum,则可以在以下位置下载源代码curl-devel:


如果您正在运行Ubuntu,请执行以下操作:

sudo apt-get install libcurl4-openssl-dev 

4
这些步骤对我有用。CentOS 5.8 32位; git版本1.8.0
Vikram

1
为我工作的CentOS 6.4和git 1.8.2.1
JoxTraex

18
在Ubuntu 12.04 LTS上,我需要的软件包是:sudo apt-get install libcurl4-openssl-dev
Michael Burr

2
在Ubuntu 10.04 LTS上,我需要的软件包是:sudo aptitude install libcurl4-openssl-devapt-get有依赖关系问题,并且能力似乎可以解决它
wenchiching 2013年

1
我遇到了这个问题,因为我正在研究git本身,并在〜/ bin目录中进行了“ make install”。我的PATH找到〜/ bin / git遇到了错误。使用/ usr / bin / git解决了该问题。
qneill 2015年

71

如果您要克隆,则可以使用git transport

例如: git clone git://github.com/fog/fog.git

Vaio ~/Myworks/Hero $ git clone git://github.com/fog/fog.git

Initialized empty Git repository in /home/nthillaiarasu/Myworks/Hero/fog/.git/
remote: Counting objects: 41138, done.
remote: Compressing objects: 100% (13176/13176), done.
remote: Total 41138 (delta 27218), reused 40493 (delta 26708)
Receiving objects: 100% (41138/41138), 5.22 MiB | 58 KiB/s, done.
Resolving deltas: 100% (27218/27218), done

3
谢谢你的建议。不幸的是,我在公司防火墙后面工作,该防火墙阻止了git协议的端口,他们不会为我打开它。我一直在下载tarball来绕过此问题,但我真的很想让git的安装正常工作!
Ben K

4
正如其他人提到的那样,git://通常不是理想的选择,但是显然,如果您处在https://根本无法使用的情况下,则可以git config --global url."git://".insteadof https://强制git使用git://而不是https ://。如果您尝试使用子模块(例如使用--recursive)进行克隆,这将很有用。
fakedad '17

完善。我无法在QNAP云上安装任何软件,但这很吸引人!
Phil Roggenbuck

45

以防万一有人在QNAP系统或任何其他以OPKG作为软件包管理器的系统上遇到此问题:

您需要同时安装git-http和git。喜欢:

opkg install git-http

3
你救了我的一天!这正是我的情况。我在Xpeonology系统上使用“ entware”来获取更多Linux软件包,并且在“ opkg install git”之后,“ git clone https://”将失败,并显示以下错误:致命:无法为'https找到远程帮助器'。感谢您提及此“ git-http”软件包。
zerox

谢谢,我理解了这个问题,但是不知道该使用什么包,它将允许git捕获http数据而不是ssh数据。
erichlf

43

我使用“ git://”代替“ https://”,从而解决了问题。我的最后命令是:

git clone --recursive git://github.com/ceph/ceph.git

16
这是一种解决方法,而不是解决方案。由于他的公司防火墙,它将适用于回购协议,但不适用于摘要,不适用于OP。
Patrick Fisher 2013年

这也意味着您不能推任何东西
Phil

@cecheverria:github不接受git的推送。
user2284570

2
@PatrickFisher但它确实在你没有安装卷曲devel的库和/或系统管理员将不及时安装它们的权利环境的工作。
squipbar

16

在我们的案例中,问题在我们检查时已修复

git --exec-path

指向一条不复存在的道路。(它指向的是我们编译git的路径,而不是之后我们复制给任何人访问的路径)

我们做了:

export GIT_EXEC_PATH=<path_of_/libexec/git-core/>

解决了


谢谢。当git安装在单独的文件夹中时,第二种解决方案对我有用。
maxwu

15

在CentOS 5.x上,安装curl-devel对我来说解决了这个问题。


8
@RyanM:这对我有用。我yum install curl-devel,然后是我./configure,,make以及make install我的git代码。然后https://为我工作。这是在CentOS 5.8
Brett

13

我有同样的问题,很容易解决。

只需卸载git并重新安装即可。

#apt-get remove --purge git-svn git-core
#rm /usr/local/bin/git
#apt-get install git-svn git-core

一切正常。

希望能有所帮助。


2
您应该执行apt-get remove --purge git
sanbor 2012年

这对我有用...像上面一样卸载git,然后获取git tarball,构建并安装它。
13年

10

我遇到了完全相同的问题,并且归结为未满足的依赖关系,但是,我尝试了接受的答案的解决方案,但它不起作用。

最终对我有用的是安装以下所有工具(这是RedHat):

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

之后,我按照指定的方式运行了其他命令,并且可以正常工作:

./configure
make
sudo make prefix=/usr/local install

我直接从Git的网站上提取了依赖项列表。显然我应该从那里开始:/


5

这在Centos 6.6中为我工作以安装git 2.3.1:

  1. 我没有安装curl-devel(检查-lcurl中的curl_global_init ...否)。关键是生成配置脚本

  2. 为docboox2x 添加 rpmforge

  3. 安装软件包

    yum install openssl-devel zlib-devel perl-ExtUtils-MakeMaker svn tcl perl-Locale-Msgfmt gettext asciidoc xmlto docbook2x
    
  4. 建立符号链接

    ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
    
  5. 建立git

    # download latest relase from https://github.com/git/git/releases
    curl -O -J -L https://github.com/git/git/archive/v2.13.0.tar.gz
    tar xf git-2.13.0.tar.gz
    cd git-2.13.0
    make configure
    ./configure --prefix=/usr
    make all doc
    make install install-doc install-html
    

等一下...问题是git clone https://失败。您如何通过克隆git源来修复它?任何人阅读这个问题就无法做到第5步
安德鲁的Lorien

1
增加了卷曲和焦油的使用量
rofrol

5

解决此问题的最简单方法是确保为您的当前用户git-core将添加到path

如果您将以下内容添加到bash配置文件中,~/.bash_profile通常可以解决该问题

PATH=$PATH:/usr/libexec/git-core

唯一适合我的解决方案是您的。对于其他用户,您也可以使用上方命令或以下命令来修复它:/ usr / bin / git pull origin master
Ujjawal Khare

另外,请确保您的git-core是使用git-remote-https构建的。
艾德·兰德尔

2

使用capistrano部署Rails应用程序时遇到此问题。问题是我的用户在cpanel中仅具有受监禁的shell访问权限。将其更改为普通的shell访问解决了我的问题。


如何在使用户入狱的同时解决此问题?有什么需要添加到jk_init.ini[git]解决这一问题?
消失了

2

在Mac OS X 10.9 Mavericks上,有效的解决方案如下

rvm pkg install openssl
CC=/usr/local/bin/gcc-4.2 CPP=/usr/local/bin/cpp-4.2 CXX=/usr/local/bin/g++-4.2  rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr

这是为了编译具有OpenSSL支持的Ruby。接下来,卸载所有旧版本。

brew uninstall openssl
brew uninstall curl
brew uninstall git

接下来,安装更新的版本。git的安装取决于CURL的更新版本。

brew install openssl
brew install curl
brew install git

这对我CC=/usr/local/bin/gcc-4.2 CPP=/usr/local/bin/cpp-4.2 CXX=/usr/local/bin/g++-4.2 有用...虽然必须删除并使用更高的红宝石版本
Amgad

在macOS 10.14(Mojave)上,我的简单解决方案是使用已经安装的Anaconda,然后键入conda install git以安装较新的git版本和依赖项软件包。
skynaut

1

这个远程帮助程序问题有很多问题。我确保已经安装了所有的expat,curl等,但是在发现4.4.4版本为duff之后,通过更新gcc最终解决了该问题。只是做了一个yum更新并用4.4.6重新编译。



0

我今天遇到了同样的问题:经过多年的愉快服务,git http坏了。这似乎是由于某些Perl lib更新引起的。在网络上尝试了一些理智的建议,但都无济于事。足够了,我就删除了所有git的东西,从http://git-scm.com/获得了一个新的tarball ,进行了编译和安装,一切恢复正常。试试看,否则您可以深入了解日志...


0

我不得不添加一些额外的安装,这些安装运行CentOS版本5.10(最终版):

yum install openssl097a.x86_64 
yum install openssl-perl.x86_64 

使用git-1.8.5:./configure make clean make make install

git clone https://github.com/michaelficarra/CoffeeScriptRedux.git
Cloning into 'CoffeeScriptRedux'...
remote: Reusing existing pack: 4577, done.
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 4601 (delta 13), reused 11 (delta 1)
Receiving objects: 100% (4601/4601), 2.60 MiB | 126.00 KiB/s, done.
Resolving deltas: 100% (2654/2654), done.
Checking connectivity... done.

0

我登陆这里一次是因为我正在使用git本身。当我构建它时,默认的makefile将二进制文件安装在〜/ bin / git中。因为当我运行'git pull --rebase'时,我的PATH首先具有〜/ bin,所以它在〜/ bin中使用了〜/ bin,因此无法找到帮助器。

我通过使用完整路径运行'/ usr / bin / git ...'解决了该问题(或者,我可以调整PATH)。


0

对于在Windows系统下将git与Jenkins结合使用的用户,您需要在以下位置配置git.exe的位置: Manage Jenkins => Global Tool Configuration => Git => Git可执行文件的路径并填写git.exe的路径,例如; C:\ Program Files \ Git \ bin \ git.exe


0

工作了

1-我必须删除git:

sudo apt-get remove git

2-重新-使用-all后缀安装git:

sudo apt-get install git-all

如此处所教:https : //git-scm.com/book/en/v2/Getting-Started-Installing-Git

3-检查了我的github帐户的所有设置(用户名和电子邮件)

顺便说一句,我误认为是我发错的好电子邮件;) https://github.com/settings/profile
检查您的用户名
https://github.com/settings/emails
检查您的电子邮件是否是好电子邮件

4-我在这里遵循了git的教程

https://help.github.com/articles/connecting-to-github-with-ssh


0

就我而言,没有任何成功,经过一会儿看,我在配置文件中发现了这一点。不确定如何到达那里

% cat ~/.gitconfig 
[user]
    email = xxxxxxx@gmail.com
    name = xxxxxx
[alias]
    g = grep -n -i --heading --break
[url "git+https://github.com/"]
    insteadOf = git@github.com:
[url "git+https://"]
    insteadOf = git://

删除url属性后,一切恢复正常


0

CentOS Minimal通常通过yum install git命令安装1.8版git 。

最好的方法是从源代码构建和安装它。当前版本是2.18.0

  1. https://mirrors.edge.kernel.org/pub/software/scm/git/ 或下载源代码curl -o git-2.18.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz

  2. 解压缩 tar -zxf git-2.18.0.tar.gz && cd git-2.18.0

  3. 通过执行安装依赖包 yum install autoconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto openjade perl* texinfo

  4. 安装docbook2X,它不在rpm资源库中。下载并安装

    $ curl -o docbook2X-0.8.8-17.el7.x86_64.rpm http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/d/docbook2X-0.8.8-17.el7.x86_64 .rpm $ rpm -Uvh docbook2X-0.8.8-17.el7.x86_64.rpm

并创建一个unix链接名称:

ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
  1. 编译安装,请参阅https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

    $ make configure $ ./configure --prefix = / usr $使所有文档信息$ sudo make install install-doc install-html install-info

  2. 重新启动服务器(否则,可能会遇到Unable to find remote helper for 'https'错误)

    $立即重启

  3. 测试:

    $ git clone https://github.com/volnet/v-labs.git $ cd v-labs $ touch test.txt $ git add。$ git commit -m“测试git install” $ git push -u


0

使用TortoiseGit时在Windows上出现此错误。重新安装Windows版Git,并通过重新运行首次启动向导将其修复,告诉TortoiseGit git.exe的路径。


0

就我而言git --exec-path,它指向正确的路径并且git-remote-https存在但没有执行权限。因此chmod +x git-remote-http解决了这个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.