“在 git clone 期间无法找到 'https' 的远程助手”

Posted

技术标签:

【中文标题】“在 git clone 期间无法找到 \'https\' 的远程助手”【英文标题】:"Unable to find remote helper for 'https'" during git clone“在 git clone 期间无法找到 'https' 的远程助手” 【发布时间】:2012-01-09 21:33:01 【问题描述】:

我无法克隆 HTTPS 存储库。我可以很好地克隆 SSH 存储库,但不能克隆 HTTPS 存储库。我无法测试 GIT 协议,因为我在公司防火墙后面。

这就是我想要做的:

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

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

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

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

Git 版本 = 1.7.6.4

操作系统 = Ubuntu 11.04

【问题讨论】:

很抱歉,听起来好像没有安装 curl。做curl --help 看看是不是。 当我运行 curl --help 时,我得到了一个 curl 选项列表。 我知道,就像我在问题开头提到的那样,我已经浏览了可以在 Google 中找到的所有结果。到目前为止没有任何效果! 我也有同样的问题。我也在公司防火墙后面。我尝试使用 Internet 上的所有选项重新编译,但根本不起作用。还有其他想法吗? 有趣的是,我正在尝试从 curl 的 github 克隆,以便可以在锁定的 $%^* Solaris 机器上编译它。 【参考方案1】:

编译 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:

http://curl.se/dlwiz/?type=devel

如果您运行的是 Ubuntu:

sudo apt-get install libcurl4-openssl-dev 

【讨论】:

这些步骤对我有用。 CentOS 5.8 32 位 ;git 版本 1.8.0 为我工作的 CentOS 6.4 和 git 1.8.2.1 在 Ubuntu 12.04 LTS 上,我需要的包是:sudo apt-get install libcurl4-openssl-dev 在 Ubuntu 10.04 LTS 上我需要的包是:sudo aptitude install libcurl4-openssl-dev apt-get 有依赖问题,aptitude 似乎可以解决它 我遇到了这个问题,因为我正在处理 git 本身,并且在我的 ~/bin 目录中进行了“make install”。我的 PATH 找到了遇到错误的 ~/bin/git。使用 /usr/bin/git 解决了这个问题。【参考方案2】:

如果你想克隆,那么你可以使用 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

【讨论】:

感谢您的建议。不幸的是,我在公司防火墙后面工作,该防火墙阻止了 git 协议的端口,他们不会为我打开它。我一直在下载 tarball 来绕过这个问题,但我真的很想让我的 git 安装正常工作! 正如其他人所提到的, git:// 通常并不理想,但显然如果您处于 https:// 根本无法工作的情况,您可以使用 git config --global url."git://".insteadof https:// 来强制 git 始终使用 git:// 而不是 https://。如果您尝试使用子模块进行克隆(例如使用 --recursive),这可能很有用。 完美。我无法在我的 QNAP 云上安装任何东西,但这就像一个魅力!【参考方案3】:

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

你需要和 git 一起安装 git-http。喜欢:

opkg install git-http

【讨论】:

你拯救了我的一天!这正是我的情况。我在 Xpeonology 系统上使用“entware”来获取更多 Linux 软件包,在“opkg install git”之后,“git clone https://”将失败并出现错误:致命:无法找到“https”的远程助手'。感谢您提及这个“git-http”包。 谢谢 我理解了这个问题,但不知道是什么包可以让 git 抓取 http 数据而不是 ssh 数据。 不幸的是,这对我来说不起作用。但是在另一个答案中使用 git:// 而不是 https:// 确实对我有用 你也救了我的命!我正在使用 Synology DSM(DSM 7.0-41222 测试版)和 OPKG/Entware — 我完全不知道 为什么 这不像过去那样直接开箱即用。答案很简单:“过去”我使用的是包装盒随附的官方 git;在测试期间已经放弃了很多,所以我正在安装我在 OPKG/Entware 中缺少的东西......因此我现在使用的 git 版本是来自那里的......它缺少 HTTP支持。呸!那好吧。感谢您指出这一点,我永远不会自己弄清楚...... OPKG经理应该发出警告!【参考方案4】:

我使用“git://”而不是“https://”,这解决了问题。我的最终命令是:

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

【讨论】:

这是一种解决方法,而不是解决方案。由于他的公司防火墙,它将适用于 repos 但不适用于 gists,并且不适用于 OP。 这也意味着你不能推送任何东西 @cecheverria : github 不接受通过 git 推送。 @PatrickFisher 但它确实在您无权安装 curl-devel 库和/或系统管理员不会及时安装它们的环境中工作。 它确实帮助我让我的 jenkins 构建服务器运行夜间构建。谢谢【参考方案5】:

在我们的例子中,问题在我们检查时已解决

git --exec-path

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

我们做了一个:

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

并解决了。

【讨论】:

谢谢。当 git 安装在单独的文件夹中时,第二个解决方案对我有用。【参考方案6】:

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

【讨论】:

@RyanM:这对我有用。我在我的 git 代码上 yum install curl-devel 然后是 ./configuremakemake install。然后 https:// 为我工作。这是在 CentOS 5.8 上【参考方案7】:

我有同样的问题,解决起来很简单。

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

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

一切正常。

希望对您有所帮助。

【讨论】:

你应该做 apt-get remove --purge git 这对我有用......如上所述卸载 git,然后获取 git tarball,构建和安装它。【参考方案8】:

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

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

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

之后,我按照指定运行了其他命令并且它工作了:

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

我直接从Git's website 中提取了依赖项列表。显然我应该从那里开始:/

【讨论】:

【参考方案9】:

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

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

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

【讨论】:

唯一对我有用的解决方案是你的。对于其他人,您也可以使用上面或使用下面的命令来修复它:/usr/bin/git pull origin master 另外,请确保您的 git-core 已使用 git-remote-https 构建。【参考方案10】:

这对我在 Centos 6.6 中安装 git 2.3.1 有用:

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

    add rpmforge 用于 docboox2x

    安装包

    yum install openssl-devel zlib-devel perl-ExtUtils-MakeMaker svn tcl perl-Locale-Msgfmt gettext asciidoc xmlto docbook2x
    

    制作符号链接

    ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
    

    构建 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 步。 添加 curl 和 tar 使用【参考方案11】:

在 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 并使用更高的 ruby​​ 版本 在 macOS 10.14 (Mojave) 上,我的简单解决方案是使用我已经安装的 Anaconda,然后键入 conda install git 来安装更新的 git 版本和依赖包。【参考方案12】:

我在使用 capistrano 部署 Rails 应用程序时遇到了这个问题。问题是我的用户在 cpanel 中只有一个被监禁的 shell 访问权限。将其更改为正常的 shell 访问解决了我的问题。

【讨论】:

如何在保持用户入狱的同时解决这个问题?需要在[git] 下的jk_init.ini 中添加什么来解决此问题?【参考方案13】:

windows系统下使用Jenkins的git,需要配置git.exe的位置: 管理 Jenkins => 全局工具配置 => Git => Git 可执行文件的路径 并填写路径到 git.exe,例如; C:\Program Files\Git\bin\git.exe

【讨论】:

【参考方案14】:

我在这个远程助手问题上遇到了很多问题。我确保我已经安装了所有的 expat、curl 等,但最终在发现 4.4.4 版本是 duff 后通过更新 gcc 来解决它。刚刚做了一个 yum 更新并用 4.4.6 重新编译。

【讨论】:

【参考方案15】:

在 centos 7 上:

$ yum install curl-devel
$ yum reinstall git

这项工作适合我。

【讨论】:

【参考方案16】:

如果在通过 github 命令行实用程序绑定使用 github 时出现此问题,则问题可能是由于使用了 gh 的 snap 版本。

最后,github 文档拯救了这一天! https://github.com/cli/cli/blob/trunk/docs/install_linux.md

以下是节省时间的步骤(debian/ubuntu/Raspberry Pios):

curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh

【讨论】:

这是被低估的答案:D,快照包存储库存在问题【参考方案17】:

我今天遇到了同样的问题:经过多年的愉快服务,git http 坏了。这似乎是由一些 Perl lib 更新引起的。在网上尝试了一些理智的建议,没有一个奏效。受够了,我刚刚删除了所有 git 内容,从 http://git-scm.com/ 获得了一个新的 tarball,编译并安装,一切都恢复正常了。试试看,或者你可以深入挖掘你的日志......

【讨论】:

【参考方案18】:

我不得不添加几个运行 CentOS 5.10 版(最终版)的额外安装:

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

使用 git-1.8.5: 。/配置 打扫干净 制作 进行安装

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.

【讨论】:

【参考方案19】:

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

我通过使用完整路径运行“/usr/bin/git ...”解决了这个问题(或者我可以调整我的 PATH)。

【讨论】:

【参考方案20】:

工作

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

【讨论】:

【参考方案21】:

在我的情况下,什么都没有成功,经过一段时间查看发生了什么,我在我的配置文件中发现了这个。不知道它是如何到达那里的

% 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 属性后一切正常

【讨论】:

【参考方案22】:

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

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

    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

    tar -zxf git-2.18.0.tar.gz &amp;&amp; cd git-2.18.0解压

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

    安装 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

    编译安装,参考https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

    $ 进行配置 $ ./configure --prefix=/usr $ 制作所有文档信息 $ sudo make install install-doc install-html install-info

    重启你的服务器(如果没有,你可能会遇到Unable to find remote helper for 'https'错误)

    $ 现在重新启动

    测试:

    $ git clone https://github.com/volnet/v-labs.git $ cd v-实验室 $ 触摸测试.txt $ 混帐添加。 $ git commit -m "测试 git 安装" $ git push -u

【讨论】:

【参考方案23】:

我在 Windows 上使用 TortoiseGit 时遇到此错误。重新安装 Windows 版 Git 并通过重新运行首次启动向导来告诉 TortoiseGit git.exe 的路径已修复它。

【讨论】:

【参考方案24】:

在我的情况下,git --exec-path 指向正确的路径,git-remote-https 存在但没有执行权限。所以chmod +x git-remote-http 解决了这个问题。

【讨论】:

【参考方案25】:

在 2020 年发现了这个 解决方案解决了 OMZ 的问题 https://***.com/a/13018777/13222154

...
➜  ~ cd $ZSH
➜  .oh-my-zsh (master) ✗ git remote -v
origin  https://github.com/ohmyzsh/ohmyzsh.git (fetch)
origin  https://github.com/ohmyzsh/ohmyzsh.git (push)
➜  .oh-my-zsh (master) ✗ date ; omz update
Wed Sep 30 16:16:31 CDT 2020
Updating Oh My Zsh
fatal: Unable to find remote helper for 'https'
There was an error updating. Try again later?
omz::update: restarting the zsh session...

...

    ln "$execdir/git-remote-http" "$execdir/$p" 2>/dev/null || \
    ln -s "git-remote-http" "$execdir/$p" 2>/dev/null || \
    cp "$execdir/git-remote-http" "$execdir/$p" || exit; \
done && \
./check_bindir "z$bindir" "z$execdir" "$bindir/git-add"
➜  git-2.9.5 
➜  git-2.9.5 
➜  git-2.9.5 
➜  git-2.9.5 omz update       
Updating Oh My Zsh
remote: Enumerating objects: 296, done.
remote: Counting objects: 100% (296/296), done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 221 (delta 146), reused 179 (delta 105), pack-reused 0
Receiving objects: 100% (221/221), 42.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (146/146), completed with 52 local objects.
From https://github.com/ohmyzsh/ohmyzsh
 * branch            master     -> FETCH_HEAD
   7deda85..f776af2  master     -> origin/master
Created autostash: 273f6e9

【讨论】:

以上是关于“在 git clone 期间无法找到 'https' 的远程助手”的主要内容,如果未能解决你的问题,请参考以下文章