Comment convertir les URL `git:` en URL `http:`

Je travaille derrière un proxy http. J’essaie de cloner l’arbre source d’Android en utilisant leur outil “repo”.

Cet outil insiste sur l’utilisation des URL git:// , même si les URL http:// fonctionnent également. En conséquence, je ne peux pas télécharger la source.

Est-il possible de forcer git à toujours utiliser http ?

Modifier: mon http_proxy est configuré correctement. Par exemple, cela fonctionne:

 git clone http://android.git.kernel.org/platform/manifest.git 

Mais ce n’est pas le cas (erreur = connexion expirée):

 git clone git://android.git.kernel.org/platform/manifest.git 

Donc, cette réponse ne m’aide pas vraiment.

Voici un exemple de réécriture du protocole par défaut pour GitHub:

 git config --global url.https://github.com/.insteadOf git://github.com/ 

Je ne sais pas comment cet outil repo utilise Git (et si vous pouvez configurer ‘repo’ pour utiliser le protocole http), mais vous pouvez essayer de le tromper en utilisant la variable de configuration url..insteadOf (voir git-config et git -fetch manpages).

Avez-vous essayé d’utiliser core.gitProxy pour traverser un pare-feu, si c’est le problème avec l’utilisation du protocole git?

J’ai eu le même problème avec l’obtention récursive de sous-modules dans un repository git. Je suis derrière un pare-feu fou qui n’autorise pas les connexions sortantes sur le port git. Certains des sous-modules des sous-modules ont été codés comme git://github.com/blah/blah.git . Cela a tué ma population récursive de sous-modules. La solution de contournement est la suivante:

 git config --global url."https://@".insteadOf git:// 

Cela remplace git:// par https://@ dans toutes les URL de référentiel de sous-module. Vous devez remplacer par votre propre nom d’utilisateur git. Notez également que --global est requirejs; Il ne suffit pas d’append cette configuration au répertoire du référentiel de base.

Vous pouvez vérifier dans ~/.gitconfig si vous ~/.gitconfig SSH avec https: //, ou vice versa.