«Impossible de trouver un assistant distant pour« https »» lors du clonage git

244

Je ne parviens pas à cloner les référentiels HTTPS. Je peux cloner des dépôts SSH très bien, mais pas des dépôts HTTPS. Je ne peux pas tester le protocole GIT car je suis derrière un pare-feu d'entreprise.

Voici ce que j'essaie de faire:

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

J'ai jusqu'à présent essayé ce qui suit (basé sur des recherches Google)

  • Purger et installer Git via apt-get
  • Installation build-depspour Git viaapt-get
  • Installation des bibliothèques de développement curl
  • Installer des bibliothèques d'expats
  • Téléchargement de Git source et construction à l'aide de:
    • ./configure --prefix=/usr --with-curl --with-expat
    • A également essayé de pointer configurer sur curl binary ( ./configure --prefix=/usr --with-curl=/usr/bin/curl)

J'ai essayé tout ce que je peux trouver sur Internet sans succès. Quelqu'un peut-il m'aider?

Version Git = 1.7.6.4

OS = Ubuntu 11.04

Ben K
la source
Désolé d'être évident, il semble que curl ne soit pas installé. faire curl --helpet voir si c'est le cas.
mike jones
Je récupère une liste d'options de curl lorsque j'exécute curl --help.
Ben K
1
Je sais, comme je l'ai mentionné en haut de ma question, j'ai parcouru tous les résultats que je peux trouver dans Google. Jusqu'à présent, rien n'a fonctionné!
Ben K
2
J'ai le même problème. Je suis également derrière un pare-feu d'entreprise. J'ai essayé de recompiler avec toutes les options trouvées sur Internet, mais ne fonctionne pas du tout. Une autre idée?
1
Ce qui est drôle, c'est que j'essaie de cloner à partir du github de curl afin de pouvoir le compiler sur une boîte Solaris $ & #% ^ * verrouillée.
makhdumi

Réponses:

290

Il semble que ne pas avoir (lib) curl-devel installé lorsque vous compilez git peut provoquer cela.

Si vous installez (lib) curl-devel, puis reconstruisez / installez git, cela devrait résoudre le problème:

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

Cela a fonctionné pour moi sur Centos 6.3.

Si vous n'avez pas miam, vous pouvez télécharger la source pour curl-devel ici:


Si vous utilisez Ubuntu à la place:

sudo apt-get install libcurl4-openssl-dev 
TastyCode
la source
4
ces étapes ont fonctionné pour moi. CentOS 5.8 32 bits; git version 1.8.0
Vikram
1
A travaillé pour moi CentOS 6.4 et git 1.8.2.1
JoxTraex
18
Sur Ubuntu 12.04 LTS, le package dont j'avais besoin était:sudo apt-get install libcurl4-openssl-dev
Michael Burr
2
Sur Ubuntu 10.04 LTS, le package dont j'avais besoin était: sudo aptitude install libcurl4-openssl-devapt-get a un problème de dépendance et l'aptitude semble pouvoir le résoudre
wenchiching
1
J'ai eu ce problème parce que je travaillais sur git lui-même et que j'avais fait un "make install" dans mon répertoire ~ / bin. Mon CHEMIN a récupéré ~ / bin / git qui a rencontré l'erreur. L'utilisation de / usr / bin / git a résolu le problème.
qneill
71

Si vous essayez de cloner, vous pouvez utiliser le transport git

Par exemple: 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
Thillai Narayanan
la source
3
Merci pour vos conseils. Malheureusement, je travaille derrière un pare-feu d'entreprise qui bloque le port du protocole git et ils ne l'ouvriront pas pour moi. J'ai téléchargé des tarballs pour contourner le problème, mais j'aimerais vraiment que mon installation de git fonctionne correctement!
Ben K
4
Comme d'autres l'ont mentionné, git: // n'est généralement pas idéal, mais apparemment, si vous êtes dans une situation où https: // ne fonctionnera tout simplement pas, vous pouvez utiliser git config --global url."git://".insteadof https://pour forcer gità toujours utiliser git: // au lieu de https : //. Cela peut être utile si vous essayez de cloner avec des sous-modules (par exemple avec --recursive).
fakedad
Parfait. Je n'ai rien pu installer sur mon cloud QNAP mais cela a fonctionné comme un charme!
Phil Roggenbuck
45

Juste au cas où quelqu'un le rencontrerait sur un système QNAP ou tout autre système avec OPKG comme gestionnaire de paquets:

Vous devez installer git-http avec git. Comme:

opkg install git-http
CWBudde
la source
3
Tu m'as sauvé la journée! C'est exactement mon cas. J'utilise "entware" sur un système Xpeonology pour obtenir plus de packages logiciels Linux, et après "opkg install git", le "git clone https: //" échouera avec l'erreur: fatal: impossible de trouver un assistant distant pour 'https '. Merci d'avoir mentionné ce package "git-http".
zerox
Merci, j'ai compris le problème, mais je ne savais pas quel était le paquet permettant à git de récupérer des données http au lieu de données ssh.
erichlf
43

J'ai utilisé " git://" au lieu de " https://" et cela a résolu le problème. Ma dernière commande était:

git clone --recursive git://github.com/ceph/ceph.git
cecheverria
la source
16
Il s'agit d'une solution de contournement, pas d'une solution. Cela fonctionnera pour les repos mais pas pour les gists, et pas pour l'OP en raison de son pare-feu d'entreprise.
Patrick Fisher
Et cela signifie également que vous ne pouvez rien pousser
Phil
@cecheverria: github n'accepte pas le push over git.
user2284570
2
@PatrickFisher Mais il fait travailler dans des environnements où vous n'avez pas le droit d'installer les bibliothèques curl-devel et / ou le sysadmin ne les installer rapidement.
squipbar
16

Dans notre cas, le problème a été résolu lors de notre vérification

git --exec-path

pointait vers un chemin qui a cessé d'exister. (Il pointait vers le chemin où nous avons compilé git et non où nous avons copié par la suite pour que quiconque y accède)

Nous avons fait:

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

et résolu.

Pedro Reis
la source
Merci. La 2ème solution fonctionne pour moi lorsque git est installé dans un dossier séparé.
maxwu
15

Sur CentOS 5.x, l'installation de curl-devel a résolu le problème pour moi.

Ron
la source
8
@RyanM: Cela a fonctionné pour moi. Moi yum install curl-develet puis moi ./configure, makeet make installsur mon code git. Ensuite, https: // a fonctionné pour moi. C'est sur CentOS 5.8
Brett
13

J'ai eu le même problème et simple à résoudre.

Désinstallez simplement git et réinstallez-le.

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

et tout fonctionne bien.

J'espère que cette aide.

thehuyvb
la source
2
Vous devriez faire apt-get remove --purge git
sanbor
Cela a fonctionné pour moi ... désinstaller git comme ci-dessus, puis récupérer l'archive tar git, le construire et l'installer.
joeking
10

J'avais exactement le même problème et cela se résumait à une dépendance non satisfaite, cependant, j'ai essayé la solution de la réponse acceptée et cela n'a pas fonctionné.

Ce qui a finalement fonctionné pour moi a été d'installer tous les éléments suivants (c'est RedHat):

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

Ensuite, j'ai exécuté les autres commandes comme spécifié et cela a fonctionné:

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

J'ai tiré la liste des dépendances directement du site Web de Git . Apparemment, j'aurais dû commencer par là: /

Topher Fangio
la source
5

Cela a fonctionné pour moi dans Centos 6.6 pour installer git 2.3.1:

  1. Je n'ai pas installé curl-devel (vérification de curl_global_init dans -lcurl ... non). La clé était de générer un script de configuration

  2. ajouter rpmforge pour docboox2x

  3. installer des packages

    yum install openssl-devel zlib-devel perl-ExtUtils-MakeMaker svn tcl perl-Locale-Msgfmt gettext asciidoc xmlto docbook2x
    
  4. créer un lien symbolique

    ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
    
  5. construire 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
    
rofrol
la source
Attendez une seconde ... le problème est que le clone git https: // échoue. Comment le corrigez-vous en clonant la source git ??? Quiconque lit cette question ne pourra pas faire l'étape 5.
andrew lorien
1
utilisation de curl et de goudron ajoutée
rofrol
5

Le moyen le plus simple de résoudre ce problème consiste à s'assurer que le git-corefichier est ajouté au pathpour votre utilisateur actuel.

Si vous ajoutez ce qui suit à votre fichier de profil bash, ~/.bash_profilecela devrait normalement résoudre le problème

PATH=$PATH:/usr/libexec/git-core
Judder
la source
la seule solution qui a fonctionné pour moi est la vôtre. Pour d'autres, vous pouvez également le corriger à l'aide de la commande ci-dessus ou utiliser la commande ci-dessous à la place: / usr / bin / git pull origin master
Ujjawal Khare
Assurez-vous également que votre git-core a été construit avec git-remote-https inclus.
Ed Randall
2

J'avais ce problème lors de l'utilisation de capistrano pour déployer une application rails. Le problème était que mon utilisateur n'avait qu'un accès shell emprisonné dans cpanel. Le changer en accès shell normal a résolu mon problème.

Metralha
la source
Comment résoudre ce problème tout en gardant l'utilisateur en prison? Que faut-il ajouter à jk_init.iniunder [git]pour résoudre ce problème?
disparu
2

Sur Mac OS X 10.9 Mavericks, la solution qui a fonctionné est la suivante

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

Il s'agit de compiler Ruby avec le support OpenSSL. Ensuite, désinstallez toutes les anciennes versions.

brew uninstall openssl
brew uninstall curl
brew uninstall git

Ensuite, installez les versions mises à jour. L'installation de git dépend d'une version mise à jour de CURL.

brew install openssl
brew install curl
brew install git
Nick Woodhams
la source
Cela a fonctionné pour moi ... a dû supprimer CC=/usr/local/bin/gcc-4.2 CPP=/usr/local/bin/cpp-4.2 CXX=/usr/local/bin/g++-4.2 cependant et utilisé une version plus élevée de rubis
Amgad
Sur macOS 10.14 (Mojave), ma solution simple consistait à utiliser Anaconda que j'avais déjà installé et à taper conda install gitpour installer une version plus récente de git et des packages de dépendances.
skynaut
1

J'ai eu beaucoup de problèmes avec ce problème d'assistance à distance. Je me suis assuré d'avoir installé tous les expats, curl, etc., mais j'ai finalement résolu le problème en mettant à jour gcc après avoir constaté que la version 4.4.4 était duff. Je viens de faire une mise à jour miam et recompilé avec 4.4.6.

user1164594
la source
1

Sur centos 7:

$ yum install curl-devel
$ yum reinstall git

Ça marche pour moi.

Johan Morales
la source
0

J'ai eu le même problème aujourd'hui: git http cassé après des années de service heureux. Cela semble provoqué par certaines mises à jour de la bibliothèque Perl. J'ai essayé quelques suggestions sensées sur le web, aucune n'a fonctionné. J'en ai assez, je viens de supprimer tous les trucs git, j'ai obtenu un nouveau tarball de http://git-scm.com/ , compilé et installé, et tout est revenu à la normale. Essayez-le, ou vous pouvez fouiller profondément dans vos journaux ...

Wen Bian
la source
0

J'ai dû ajouter quelques installations supplémentaires en exécutant CentOS version 5.10 (finale):

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

Utilisation de 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.
Jarle Drivenes
la source
0

J'ai atterri ici une fois parce que je travaillais avec git lui-même. Quand je l'ai construit, le makefile par défaut a installé le binaire dans ~ / bin / git. Étant donné que mon CHEMIN avait d'abord / / bin lorsque j'ai exécuté 'git pull --rebase', il a utilisé celui dans ~ / bin et n'a donc pas pu localiser les assistants.

J'ai contourné le problème en exécutant '/ usr / bin / git ...' avec un chemin complet (sinon j'aurais pu ajuster mon CHEMIN).

qneill
la source
0

Pour ceux qui utilisent git avec Jenkins sous un système Windows, vous devez configurer l'emplacement de git.exe sous: Manage Jenkins => Global Tool Configuration => Git => Path to Git executable and fill-in the path to git.exe , par exemple; C: \ Program Files \ Git \ bin \ git.exe

posix99
la source
0

travaillé

1- J'ai dû retirer git:

sudo apt-get remove git

2- Réinstallez git avec le suffixe -all:

sudo apt-get install git-all

comme enseigné ici: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

3- vérifié tous les paramètres (nom d'utilisateur et email) de mon compte github

par la façon dont je me suis trompé le bon e-mail qui a été la source de mes erreurs;) https://github.com/settings/profile
vérifiez votre nom d'utilisateur
https://github.com/settings/emails
vérifiez que votre e-mail est le bon

4- J'ai suivi le tutoriel de git ici

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

marcdahan
la source
0

Dans mon cas, rien n'a réussi, après avoir regardé ce qui se passait, j'ai trouvé cela dans mon fichier de configuration. Je ne sais pas comment cela est arrivé

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

Après avoir supprimé les propriétés de l'URL, tout fonctionnait à nouveau correctement

Bruno Manzo
la source
0

CentOS Minimal installe généralement la version 1.8 git par yum install gitcommande.

La meilleure façon est de le construire et de l'installer à partir du code source. La version actuelle est 2.18.0.

  1. Téléchargez le code source depuis https://mirrors.edge.kernel.org/pub/software/scm/git/ oucurl -o git-2.18.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz

  2. Décompressez par tar -zxf git-2.18.0.tar.gz && cd git-2.18.0

  3. Installez le package de dépendance en exécutant yum install autoconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto openjade perl* texinfo

  4. Installez docbook2X, il n'est pas dans le dépôt rpm. Téléchargez et installez par

    $ 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

Et faites un nom de lien Unix:

ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
  1. Compiler et installer, référence à https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

    $ make configure $ ./configure --prefix = / usr $ make toutes les infos doc $ sudo make install install-doc install-html install-info

  2. Redémarrez votre serveur (sinon, vous pouvez rencontrer une Unable to find remote helper for 'https'erreur)

    $ redémarrer maintenant

  3. Tester:

    $ 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

Eric Kung
la source
0

J'ai eu cette erreur sur Windows lors de l'utilisation de TortoiseGit. Réinstaller Git pour Windows et indiquer à TortoiseGit le chemin vers git.exe en réexécutant l'assistant de premier démarrage l'a corrigé.

Matthieu
la source
0

Dans mon cas git --exec-path, pointait vers le bon chemin et git-remote-httpsexistait mais n'avait pas de permission d'exécution. Donc, chmod +x git-remote-httple problème a été résolu.

nicolausOui
la source