it-swarm.com.de

Git Proxy Bypass

Git arbeitet in einer Proxy-Umgebung, indem der Konfigurationsparameter http.proxy festgelegt wird.

Für bestimmte Adressen muss ich den Proxy umgehen. Gibt es einen Konfigurationsparameter ohne Proxy/Bypass-Proxy?

45
yannisf

Der Proxy kann auf entfernter Basis überschrieben werden - siehe http://git-scm.com/docs/git-config (suchen Sie nach "http.proxy" und "remote. <Name" > .proxy "einstellungen). Angenommen, Sie haben die Fernbedienung "Origin", dann lautet der Befehl, mit dem Sie den Proxy für diese Fernbedienung umgehen können:

git config --add remote.Origin.proxy ""
68
Jan Gutvirth

Um den Proxy für bestimmte, normalerweise lokale Adressen zu umgehen, müssen Sie nur Folgendes tun:

export no_proxy=URLToIgnore

Wobei URLToIgnore die URL ist, die Git ignorieren soll. Sie können auch URLs ignorieren, die mit einem bestimmten Wort enden.

export no_proxy=.mylocal

Wo alle mit .mylocal Endenden URLs ignoriert werden. So ignorieren Sie mehrere URLs:

export no_proxy=.mylocal URLToIgnore

Um es dauerhaft zu machen, fügen Sie es Ihrer ~/username/.bash_profile - Datei hinzu. Wenn Sie die Datei .bash_profile Nicht in Ihrem Benutzerstammverzeichnis finden, erstellen Sie sie manuell.

Für weitere Informationen: So deaktivieren Sie git http proxy vorübergehend

26
Yas T.

Stellen Sie sicher, dass Sie ein Git 2.1.2+ haben, wenn Sie eine Konfiguration auf einen leeren Wert setzen möchten, wie z

git config --add remote.Origin.proxy ""

Denn wenn Sie sich entscheiden, einen Proxy für diese Remote wiederherzustellen (hier 'Origin') ... , wird ein Git älter als 2.1.2 (30. September) als Fehler angezeigt. 2014)

Siehe commit c846664 ( tanayabh )

make config --add Verhält sich für leere und NULL Werte korrekt

Derzeit, wenn wir eine Konfigurationsdatei wie haben,

[foo]
        baz
        bar =

und wir versuchen etwas wie "git config --add foo.baz roll", Git wird segfault. Außerdem wird bei "git config --add foo.bar roll" Der ursprüngliche Wert überschrieben, anstatt nach dem vorhandenen leeren Wert anzuhängen.

Das Problem liegt in dem regulären Ausdruck, der zur Simulation von --add In git_config_set_multivar_in_file(), "^$" Verwendet wird, der im Idealfall nicht mit einer Zeichenfolge übereinstimmen sollte, sondern für leere Zeichenfolgen zutrifft.
Verwenden Sie stattdessen einen regulären Ausdruck wie "a^", Der für keine Zeichenfolge, ob leer oder nicht, wahr sein kann.

Fügen Sie zum Entfernen des Segfault eine Prüfung für NULL Werte in matches() in config.c hinzu.

5
VonC

Accepted answer setzt voraus, dass das Git-Repo vorhanden ist, bevor es funktioniert, und das zweitbeste answer funktioniert nur unter Linux und Mac. Also in Windows, damit es funktioniert für https://git-url.com/project/repo-name.git Versuchen Sie Folgendes in einer Eingabeaufforderung

set no_proxy=git-url.com

dann

git clone git-url.com/repo-name.git

Jetzt haben Sie ein Repo, um die akzeptierte Antwort anzuwenden.

1
Ganesh Pendyala

Wenn Sie den http_proxy aufgrund der Windows/Unix-Benutzerrolle nicht von der Befehlszeile entfernen können, gehen Sie folgendermaßen vor:

git config -l --show-Origin

Dadurch werden die auf den Dateien basierenden Konfigurationen entsprechend der Hierarchie gedruckt. Wechseln Sie nun zu einer bestimmten Datei (lokale .git/config-Ordnerdatei) und aktualisieren/entfernen Sie den http_proxy.

Hoffe das hilft.

1
Riddhi Sanyal