“在 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
然后是 ./configure
、make
和 make 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 git
command 安装 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 && 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' 的远程助手”的主要内容,如果未能解决你的问题,请参考以下文章