Essayer de charger des fichiers depuis github à travers un pare-feu est incroyablement lent. Des suggestions pour des solutions de contournement?
Question
Je suis un peu hésitant à poster ceci, car je ne suis pas tout à fait sûr de ce que je fais. Toute aide serait formidable.
Je suis sur un ordinateur avec un pare-feu / filtre. Je peux télécharger des fichiers sans aucune difficulté. Lorsque j'essaie de cloner des fichiers depuis Github, l'ordinateur se bloque. Rien ne se passe. Il crée un fichier git dans le dossier, mais les fichiers de clé ne sont pas chargés. Pour le contexte, je travaille sur une application Rails, je tente de charger l’authentification restante.
Est-ce que l'un d'entre vous s'est occupé de cela? Des suggestions pour faire fonctionner le clone? Désactiver le pare-feu pourrait être une option, mais si je peux faire quelque chose sans passer par ce processus, je l'apprécierais.
La solution
Github prend en charge le clonage à l'aide du protocole git sur le port 9418 et de HTTP sur le port 80. L'utilisation de ce dernier est très lente ( Référence ). Vous devez ouvrir le port 9418 sur votre pare-feu ou utiliser le clonage HTTP autrement.
Autres conseils
Ou ... changez simplement le " git: // " préfixe de "http: //"
Si le pare-feu n'existe plus et que vous voulez la vitesse de git [update: HTTP (S) est pratiquement aussi rapide que ssh ces jours-ci, mais cette information est toujours utile si SSH est le seul moyen d'accéder à un référentiel] et avez un accès ssh à une machine qui n’a pas de pare-feu, puis utilisez un tunnel ssh.
Pour ce faire, exécutez ceci dans une fenêtre et laissez-le en marche:
$ ssh username@some_host_not_firewalled -L9418:github.com:9418
Ensuite, partout où vous avez utilisé l'ancienne commande:
$ git clone git://github.com/jruby/jruby.git
utilisez ceci à la place:
$ git clone git://localhost/jruby/jruby.git
Cette traduction peut être réalisée automatiquement si vous modifiez votre configuration (globale) git:
$ git config --global url.git://localhost/.insteadOf git://github.com/
Le protocole git: //
utilise le port 9418, vous devez donc vous assurer que votre pare-feu autorise les connexions sortantes vers ce port.
Je suis le clone git git@ssh.github.com: xxx.user / xxx.proj
git config --global url."https://".insteadOf git://
Fait!