web-dev-qa-db-fra.com

Comment convertir les URLs `git:` en http: `urls

Je travaille derrière un proxy http. J'essaie de cloner l'arbre source d'Android à l'aide de leur outil "repo".

Cet outil insiste pour utiliser git:// _ URL, même si http:// _ Les URL fonctionnent également. En conséquence, je ne peux pas télécharger la source.

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

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

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

Mais ceci non (errno = connexion expirée):

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

Donc cette réponse ne m'aide pas vraiment.

129
noamtm

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

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

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 url.<base>.insteadOf variable de configuration (voir git-config et git-fetch pages de manuel).

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

35
Jakub Narębski

J'ai eu le même problème avec l'obtention récursive de sous-modules dans un référentiel 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://<GITUSERNAME>@".insteadOf git://

Ceci remplace git:// avec https://<GITUSERNAME>@ dans toutes les URL de référentiel de sous-modules. Vous devez remplacer <GITUSERNAME> avec votre propre nom d'utilisateur git. Notez également que le --global est requis; le simple fait d'ajouter cette configuration au répertoire du référentiel de base ne fonctionne pas.

22
crcastle

Vous pouvez vérifier dans ~/.gitconfig si vous écrasez SSH avec https: // ou inversement.

3
piperchester