«Невозможно найти удаленного помощника для https» во время git clone

244

Я не могу клонировать репозитории 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для Git черезapt-get
  • Установка библиотек curl dev
  • Установка библиотек экспатов
  • Загрузка исходного кода Git и сборка с использованием:
    • ./configure --prefix=/usr --with-curl --with-expat
    • Также пробовал указывать configure на curl binary ( ./configure --prefix=/usr --with-curl=/usr/bin/curl)

Я перепробовал все, что могу найти в интернете, но не повезло. Может кто-нибудь помочь мне?

Git версия = 1.7.6.4

ОС = Ubuntu 11.04

Бен К
источник
Извините за очевидность, похоже, что curl не установлен. сделать curl --helpи посмотреть, если это так.
Майк Джонс
Я получаю список параметров curl при запуске curl --help.
Бен К
1
Я знаю, как я уже упоминал в верхней части своего вопроса, я просмотрел все результаты, которые я могу найти в Google. Пока ничего не получалось!
Бен К
2
У меня такая же проблема. Я тоже за корпоративным брандмауэром. Я пытался перекомпилировать все найденные в интернете варианты, но не работал вообще. Любая другая идея?
1
Забавно, я пытаюсь клонировать из github curl, чтобы скомпилировать его на заблокированном $ & #% ^ * Solaris.
Махдуми

Ответы:

290

Похоже, что отсутствие (lib) curl-devel, установленного при компиляции git, может вызвать это.

Если вы устанавливаете (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 
TastyCode
источник
4
эти шаги работали для меня. CentOS 5.8 32 бит; git версия 1.8.0
Викрам
1
У меня работал CentOS 6.4 и git 1.8.2.1
JoxTraex
18
В Ubuntu 12.04 LTS мне понадобился пакет:sudo apt-get install libcurl4-openssl-dev
Майкл Берр
2
В Ubuntu 10.04 LTS мне нужен был пакет: sudo aptitude install libcurl4-openssl-devapt-get имеет проблему с зависимостью, и, кажется, aptitude может ее решить
wenchiching
1
У меня была эта проблема, потому что я работал над самим git и выполнил «make install» в моем каталоге ~ / bin. Мой PATH поднял ~ / bin / git, который обнаружил ошибку. Использование / usr / bin / git решило проблему.
Qneill
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, и мне его не открывают. Я загружал tar-архивы, чтобы обойти проблему, но мне бы очень хотелось, чтобы моя установка git работала правильно!
Бен К
4
Как уже упоминали другие, git: // обычно не идеален, но, очевидно, если вы находитесь в ситуации, когда https: // просто не работает, вы можете git config --global url."git://".insteadof https://принудительно gitиспользовать git: // вместо https. : //. Это может быть полезно, если вы пытаетесь клонировать с подмодулями (например, с --recursive).
Fakedad
Отлично. Я не мог ничего установить на своем облаке QNAP, но это сработало!
Фил
45

На всякий случай, если кто-то сталкивается с этим в системе QNAP или любой другой системе с OPKG в качестве менеджера пакетов:

Вам необходимо установить git-http вместе с git. Подобно:

opkg install git-http
CWBudde
источник
3
Ты спас мой день! Это как раз мой случай. Я использую «entware» в системе Xpeonology, чтобы получить больше пакетов программного обеспечения для Linux, и после «opkg install git» произойдет сбой «git clone https: //» с ошибкой: fatal: Невозможно найти удаленного помощника для https ». Спасибо за упоминание этого пакета "git-http".
нольx
Спасибо, я понял проблему, но не знал, что это за пакет, который позволит git получать данные http вместо данных ssh.
erichlf
43

Я использовал " git://" вместо " https://", и это решило проблему. Моя последняя команда была:

git clone --recursive git://github.com/ceph/ceph.git
cecheverria
источник
16
Это обходной путь, а не решение. Это будет работать для репозиториев, но не для гистологов, а не для OP из-за его корпоративного брандмауэра.
Патрик Фишер
И это также означает, что вы ничего не можете толкнуть
Фил
@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
Бретт
13

У меня была такая же проблема и просто ее решить.

Просто удалите git и переустановите его.

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

и все работает хорошо.

Надеюсь, это поможет.

thehuyvb
источник
2
Вы должны сделать apt-get remove --purge git
sanbor
Это сработало для меня ... удаление git, как указано выше, затем получение git tarball, сборка и установка.
шутит
10

У меня была точно такая же проблема, и она сводилась к неудовлетворенной зависимости, однако я попробовал решение принятого ответа, и оно не сработало.

В конце концов, у меня получилось установить все следующее (это RedHat):

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

После этого я выполнил другие команды, как указано, и это сработало:

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

Я вытащил список зависимостей прямо с сайта Git . Видимо, я должен был начать там: /

Topher Fangio
источник
5

Это сработало для меня в Centos 6.6 для установки git 2.3.1:

  1. У меня не было установлено curl-devel (проверка на curl_global_init в -lcurl ... нет). Ключ должен был сгенерировать скрипт настройки

  2. добавить rpmforge для docboox2x

  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. построить мерзавец

    # 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
    
rofrol
источник
Подождите секунду ... проблема в том, что git clone https: // не работает. Как вы исправляете это путем клонирования исходного кода git ??? Тот, кто читает этот вопрос, не сможет выполнить шаг 5.
Эндрю Лориен
1
добавлено использование curl и tar
rofrol
5

Самый простой способ решить эту проблему - убедиться, что git-coreон добавлен в pathтекущий пользователь.

Если вы добавите следующее в свой файл профиля bash, ~/.bash_profileэто обычно решает проблему

PATH=$PATH:/usr/libexec/git-core
вибрировать
источник
единственное решение, сработавшее для меня, - твое. Для других вы также можете исправить это, используя приведенную выше команду или команду ниже: / usr / bin / git pull origin master
Ujjawal Khare
Также убедитесь, что ваше git-ядро собрано с включенным git-remote-https.
Эд Рэндалл
2

У меня была эта проблема при использовании capistrano для развертывания приложения rails. Проблема была в том, что у моего пользователя был только доступ в оболочку в cpanel. Изменение нормального доступа к оболочке решило мою проблему.

Metralha
источник
Как это можно исправить, удерживая пользователя в тюрьме? Что нужно добавить в 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

Это для компиляции Ruby с поддержкой OpenSSL. Далее удалите все старые версии.

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
Amgad
В macOS 10.14 (Mojave) мое простое решение состояло в том, чтобы использовать Anaconda, которую я уже установил, и набирать conda install gitтекст для установки более новой версии git и пакетов зависимостей.
Скайнаут
1

У меня было много проблем с этой проблемой удаленного помощника. Я удостоверился, что установил весь expat, curl и т. Д., Но, наконец, решил его, обновив gcc, обнаружив, что версия 4.4.4 не работает. Просто сделал ням обновление и перекомпилировал с 4.4.6.

user1164594
источник
1

На сентос 7:

$ yum install curl-devel
$ yum reinstall git

Это подходит для меня.

Йохан Моралес
источник
0

У меня сегодня та же проблема: git http сломан после нескольких лет счастливого обслуживания. Кажется, это вызвано некоторыми обновлениями Perl lib. Попробовал несколько вменяемых предложений в сети, ни один не сработал. Достаточно, я просто удалил все мерзавцы, получил новый архив с http://git-scm.com/ , скомпилировал и установил, и все вернулось в нормальное состояние. Дайте ему попробовать, или вы можете углубиться в ваши журналы ...

Вен Бянь
источник
0

Мне пришлось добавить пару дополнительных установок под управлением CentOS версии 5.10 (Final):

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. Когда я его собрал, make-файл по умолчанию установил бинарный файл в ~ / bin / git. Так как в моем PATH сначала был ~ / bin, когда я запускал 'git pull --rebase', он использовал тот, что в ~ / bin, и, следовательно, не мог найти помощников.

Я обошел проблему, запустив «/ usr / bin / git ...» с полным путем (в противном случае я мог бы скорректировать свой PATH).

qneill
источник
0

Для тех, кто использует git с Jenkins в системе Windows, вам нужно настроить расположение git.exe в: Manage Jenkins => Global Tool Configuration => Git => Путь к исполняемому файлу Git и введите путь к git.exe , например; C: \ Program Files \ Git \ bin \ git.exe

posix99
источник
0

работал

1- Я должен был удалить мерзавец:

sudo apt-get remove git

2 - заново установить git с суффиксом -all:

sudo apt-get install git-all

как учат здесь: https://git-scm.com/book/en/v2/Getting-Started-Install-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

marcdahan
источник
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 обычно устанавливает git версии 1.8 по yum install 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-Install-Git.

    $ make configure $ ./configure --prefix = / usr $ make all doc info $ 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 "test git install" $ git push -u

Эрик Кунг
источник
0

Я получил эту ошибку на Windows при использовании TortoiseGit. Переустановите Git для Windows и сообщите TortoiseGit путь к git.exe, повторно запустив исправленный Мастер первого запуска.

Мэтью
источник
0

В моем случае git --exec-pathуказывал на правильный путь и git-remote-httpsсуществовал, но не имел разрешения на выполнение. Так что chmod +x git-remote-httpисправили проблему.

nicolausYes
источник