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.
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 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?
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.
Vous pouvez vérifier dans ~/.gitconfig
si vous écrasez SSH avec https: // ou inversement.