Artikelformat

Git hinterm Proxy nutzen

Git etabliert sich ja zunehmend neben Subversion und CVS im Opensourcebereich als Versionverwaltungstool.
Wie nutzt man es nun, wenn man hinter einem Proxy sitzt?

Unter Ubuntu/Debian brauch man für diesen Tipp das Packet socket, welches man mit dem übliche Befehl installiert:

apt-get install socket

Nun folgenden Inhalt in ein Textfile kopieren:

#! /bin/bash
(echo „CONNECT $1:$2 HTTP/1.0“; echo; cat ) | socket dein.proxy.de 8080 | (read a; read a; cat )

Achtung: wie der Arthurh richtig bemerkt hat, müssen um den Befehl normale ” stehen, und keine “ oder ″ !!!

und zB als proxy-cmd.sh abspeichern

chmod +x proxy-cmd.sh

GIT Variable setzen:

export GIT_PROXY_COMMAND=/pfad zum Script/proxy-cmd.sh

Alternative mit Socks-Proxy:

Script installieren und per Variable GIT_PROXY_COMMAND setzen:

#!/bin/bash
nc -xproxy:1080 -X5 $*

Unter Debian ist das Paket netcat-openbsd erforderlich.

Links:
dt. GIT Tutorial

Autor: Oliver

Ich bin Oliver und habe den aptgetupdateDE Blog im Juli 2007 aus der Taufe gehoben. Man findet mich auch auf Twitter.

3 Kommentare

  1. kurzer Tipp für alle die dieses Howto ausprobieren und so wie ich Fehler kriegen:

    echo “CONNECT $1:$2 HTTP/1.0″

    Hierbei müssen um den Befehl normale “ stehen, und keine “ oder ″

    Hat bei mir zumindest nicht funktioniert und meinen Proxy verwirrt.

  2. Ich hatte bei dem Skript das Problem, dass das CONNET vom Proxy nicht abgewartet wurde. Die erste Anfrage an den GIT-Server ging dann verloren. Mit einem sleep 2 nach dem CONNECT wird erst die Antwort vom Proxy abgewartet und dann die Anfrage an den GIT-Server gesendet.

    (echo „CONNECT $1:$2 HTTP/1.0“; echo; sleep 2; cat ) | socket proxy 8080 | (read a; read a; cat )

  3. Die Goldene Mitte

    20.09.10, 11:35, #3

    Der Tipp funktionierte bei mir nicht (Debian/lenny). Ich bekomme dann wie viele den line length error.

    Allerdings versteht mein git die Environment Variable HTTP_PROXY (!!!Groß geschreiben!!!) damit klappt es vorzüglich.