À l'aide d'un proxy socks avec git pour le transport http
Comment faire git utiliser un proxy socks pour le transport HTTP?
- Je réussir dans la configuration de git avec GIT_PROXY_COMMAND pour utiliser un proxy socks pour GIT de transport.
Aussi, j'ai configuré mon .curlrc fichier pour définir le proxy socks et je peux aller chercher l'information directement avec la commande curl comme:
curl http://git.kernel.org/pub/scm/git/git.git/info/refs?service=git-upload-pack
Mais comment faire pour utiliser un proxy socks avec git pour récupérer des données à l'aide du protocole HTTP le protocole de transport comme:
git clone http://git.kernel.org/pub/scm/git
- patthoyts la réponse ci-dessous sera officiellement pris en charge dans git 2.7 (Déc. 2015): stackoverflow.com/a/34118102/6309
- stackoverflow.com/questions/10274879/...
Vous devez vous connecter pour publier un commentaire.
J'ai testé avec Git 1.8.2 et proxy SOCKS v5, à la suite de réglage fonctionne pour moi:
git config --global http.proxy 'socks5://127.0.0.1:7070'
Mise à JOUR 2017-3-31:
Selon le document, malgré le nom
http
.proxy
, il doit travailler pour HTTP et HTTPS référentiel url. Merci @user de remarquer cette.Mise à JOUR 2018-11-27:
Pour désactiver le proxy, exécutez la commande:
git config --global --unset http.proxy
MODIFIER 2019-03-04:
Si vous aussi vous voulez le nom d'hôte pour être résolus en utilisant le proxy, utilisez thuzhf la solution ci-dessous, qui utilise
socks5h
au lieu desocks5
~/.gitconfig
et supprimer[https.proxy]
et[http.proxy]
sections, ses unini
fichier, n'hésitez pas à le modifier.git -c http.proxy=socks5://127.0.0.1:7070
, ou quelque chose comme ça. Peut-être que vous pourriez faire un aliasgitsocks
pour que, ce qui permettrait de vous appeler facilement git avec et sans chaussettes comme souhaité`git config --global --unset http.proxy
pour annuler une entréeman 1 curl
. "En fait l'équivalent d' --socks5-hostname")Si vous ne souhaitez pas définir le proxy en tant que global configuration, essayez
ALL_PROXY=
par exemple:(Juste un petit rappel) Si vous souhaitez que le nom d'hôte également être résolus par le proxy (ce qui signifie que en passant tout à travers le proxy), surtout quand vous êtes le clonage d'une gist, vous pouvez utiliser le paramètre suivant (la clé est qu'il utilise socks5h au lieu de socks5):
- Je utiliser la commande suivante pour cloner un dépôt de proxy socks5. Les paramètres de proxy sont spécifiés avec
--config
option.Note: le patch ici a été appliquée à git en 2015 pour la version 2.4.11. Depuis le temps que vous pouvez simplement utiliser des chaussettes://urls avec le http.proxy paramètres de configuration.
Pour le git://protocole, nous avons Utiliser Git avec un proxy SOCKS. Cependant, il semble que git n'est pas correctement prise en charge des chaussettes doublures. git est lui-même lié à libcurl. Si l' .curlrc fichier n'est pas utilisé (c'est juste pour le curl client en ligne de commande). Toutefois, le correctif suivant fournit le soutien nécessaire. Avec ce correctif s'applique à git on peut simplement définir la ALL_PROXY variable d'environnement ou HTTP_PROXY ou HTTPS_PROXY à
socks://hostname:portnum
(ou socks4/socks5) ou bien le http.proxy git config paramètre et libcurl va maintenant utiliser le protocole socks lors de l'utilisation du proxy.Par exemple, une trace active:
Le nécessaire patch:
Juste en référence à @briankip et en supprimant le paramètre de proxy http, comme Yang.Y mentionnés, vous pouvez modifier directement le fichier ini.
Vous pouvez également le faire sur la ligne de commande à l'aide de
git config --global --unset http.proxy
Pour confirmer qu'il a été enlevé de la liste de la configuration actuelle à l'aide de
git config --list