it-swarm.com.de

Git mit einem Proxy-Server arbeiten lassen

Wie bekomme ich git einen Proxyserver?

Ich muss Code von einem Git-Server auschecken, es zeigt jedes Mal "Request Timeed" an. Wie komme ich dazu? 

Wie kann ich alternativ einen Proxy-Server einrichten?

829
PlagueHammer

Zu verwendender Befehl:

git config --global http.proxy http://proxyuser:[email protected]:8080
  • Ändern Sie proxyuser in Ihren Proxy-Benutzer
  • Ändern Sie proxypwd in Ihr Proxy-Passwort
  • Ändern Sie proxy.server.com in die URL Ihres Proxy-Servers
  • Ändern Sie 8080 in den Proxy-Port, der auf Ihrem Proxy-Server konfiguriert ist

Wenn Sie sich zu irgendeinem Zeitpunkt entschließen, diesen Proxy zurückzusetzen und ohne Proxy zu arbeiten:

Zu verwendender Befehl:

git config --global --unset http.proxy

Abschließend überprüfen Sie den aktuell eingestellten Proxy:

git config --global --get http.proxy
1498
Salim Hamidi

Dies funktionierte für mich in Windows XP hinter einer Unternehmensfirewall.

Ich musste keinen lokalen Proxy oder andere Software außer git v1.771 von http://code.google.com/p/msysgit/downloads/list?can=3 installieren.

$ git config --global http.proxy http://proxyuser:[email protected]:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add Origin https://mygithubuser:[email protected]/repoUser/repoName.git
$ git Push Origin master

proxyuser = Der Proxy-Benutzer, dem ich von unserer IT-Abteilung zugewiesen wurde. In meinem Fall ist es derselbe Windows-Benutzer, den ich zum Anmelden an meinem PC verwende, der Active Directory-Benutzer

proxypwd = das Passwort meines Proxy-Benutzers

proxy.server.com:8080 = Der Name und der Port des Proxys. Ich habe ihn aus der Systemsteuerung, Internetoptionen, Verbindungen, Schaltfläche "LAN-Einstellungen" und der Schaltfläche "Erweitert" im Abschnitt "Proxyserver" erhalten (http) Zeile.

mygithubuser = der Benutzer, den ich für die Anmeldung bei github.com verwende

mygithubpwd = das Passwort für meinen github.com-Benutzer

repoUser = der Benutzer des Repos

repoName = der Name des Repos

124
alvaro

Legen Sie eine Systemvariable mit dem Namen http_proxy mit dem Wert von ProxyServer:Port..__ fest. Dies ist die einfachste Lösung. Verwenden Sie https_proxy als daefu in den Kommentaren.

Die Einstellung von gitproxy (wie von sleske erwähnt) ist eine weitere Option, aber dies erfordert einen "Befehl", der nicht so unkompliziert ist wie die obige Lösung.

Referenzen: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html

48
PlagueHammer

Wenn die Befehlszeilenmethode für die Konfiguration Ihres Proxyservers nicht funktioniert, können Sie... Wahrscheinlich .gitconfig bearbeiten (im Stammverzeichnis Ihres Profils, wodurch sowohl in C:\Documents and Settings als auch auf einem Netzlaufwerk verborgen wird) und füge folgendes hinzu:

[http]
    proxy = http://username:[email protected]:8080

YMMV umfasst jedoch nur den ersten Schritt der Befehlszeilenkonfiguration. Möglicherweise müssen Sie auch die Systemgit-Konfiguration bearbeiten, und ich habe keine Ahnung, wo sie das versteckt haben.

36
Randakar

Alternativ zur Verwendung von git config --global http.proxy address:port können Sie den Proxy in der Befehlszeile festlegen:

git -c "http.proxy=address:port" clone https://...

Der Vorteil ist, dass der Proxy nicht dauerhaft gesetzt ist. Unter Bash können Sie einen Alias ​​setzen:

alias git-proxy='git -c "http.proxy=address:port"'
28
Steve Pitchers

Wenn Sie Ubuntu verwenden, machen Sie Folgendes ...

Schritt 1: Installieren Sie den Korkenzieher

$ Sudo apt-get install corkscrew

Schritt 2: Schreiben Sie ein Skript namens git-proxy.sh und fügen Sie Folgendes hinzu

#!/bin/sh

exec corkscrew <name of proxy server> <port> $*

# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*

Schritt 3: Machen Sie das Skript ausführbar

$ chmod +x git-proxy.sh

Schritt 4: Richten Sie den Proxy-Befehl für GIT ein, indem Sie die Umgebungsvariable festlegen

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

Verwenden Sie nun die git-Befehle, wie z

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
19
Sk Hasanujjaman

Konfrontierte dasselbe Problem aufgrund mehrerer .gitconfig-Dateien in Windows. Befolgen Sie die folgenden Schritte, um das Problem zu beheben:

Schritt 1: Git BASH öffnen

Schritt 2: Suchen Sie nach .gitconfig und führen Sie den folgenden Befehl aus:

git config --list --global --show-Origin

Schritt 3: Kopiere den folgenden Inhalt in .gitconfig:

[http]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = [email protected]
11
Arpit

Versuchen Sie, Folgendes in die Datei ~/.gitconfig einzufügen:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://
9
augustocbx

Installieren Sie socat für das git-Protokoll (git: // ...) und schreiben Sie ein Skript wie:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

machen Sie es ausführbar, geben Sie es in Ihren Pfad ein und setzen Sie in Ihrem ~/.gitconfigcore.gitproxy den Namen dieses Skripts.

7
ashutosh

Zusätzlich zu diesen Antworten fand ich es hilfreich, diese beiden Punkte zu berücksichtigen:

Möglicherweise muss ein Authentifizierungsschema erzwungen werden:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

Normalerweise muss bei einem NTLM-Authentifizierungsschema die AD-Domäne möglicherweise explizit angegeben werden.

In Git Bash:

echo %userdomain%

Und aktualisieren Sie das http.proxy entsprechend:

git config --global http.proxy http://DOMAIN\\proxyuser:[email protected]:8080

Auf jeden Fall kann die Untersuchung durch Hinzufügen von CURL-Protokollen unterstützt werden:

export GIT_CURL_VERBOSE=1
5
blacelle

Mir ist etwas aufgefallen, das ich hier mitteilen möchte:

git config --global http.proxy http://<proxy address>:<port number>

Die obige Methode funktioniert nicht für ssh-URLs: (d. H. [email protected]:<user name>/<project name>.git)

git clone [email protected]:<user name>/<project name>.git // this will not use the above proxy!

Und die Dinge werden sich nicht ändern, wenn wir SSH über den HTTPS-Port einstellen ( https://help.github.com/de/articles/using-ssh-over-the-https-port ), weil es nur den Port ändert (Standardmäßig 22) Die SSH-Verbindung wird hergestellt.

(Kein Muttersprachler, bitte verfeinern Sie meine Worte, wenn nötig)

4
miāo

Ich arbeite unter Windows XP bei der Arbeit (state/gov), also habe ich nachgeforscht und dies hier gefunden - und es hat für mich funktioniert. Hoffe das hilft :)

Die Umgebungsvariable http_proxy

Wenn Sie einen Proxyserver oder eine Firewall verwenden, müssen Sie möglicherweise die Umgebungsvariable http_proxy festlegen, um von der Befehlszeile aus auf einige URLs zuzugreifen. Beispiel: Installieren von ppm für Perl oder Anwenden von rpm in Linux, Aktualisieren von Ubuntu

Legen Sie die http_proxy-Variable mit dem Hostnamen oder der IP-Adresse des Proxyservers fest: Http_proxy = http: // [proxy.example.org]

Wenn für den Proxyserver ein Benutzername und ein Kennwort erforderlich sind, geben Sie diese in das folgende Formular ein: Http_proxy = http: // [Benutzername: [email protected]]

Wenn der Proxyserver einen anderen Port als 80 verwendet, geben Sie die Portnummer an: Http_proxy = http: // [Benutzername: [email protected]: 8080]

Windows XP

  1. Öffnen Sie die Systemsteuerung und klicken Sie auf das Symbol System.
  2. Klicken Sie auf der Registerkarte Erweitert auf Umgebungsvariablen.
  3. Klicken Sie im Bereich Systemvariablen auf Neu.
  4. Fügen Sie http_proxy mit den entsprechenden Proxy-Informationen hinzu (siehe Beispiele oben).

Linux, Solaris oder HP-UX

Legen Sie die Umgebungsvariable http_proxy mithilfe des für Ihre Shell spezifischen Befehls fest (z. B. setzen oder exportieren). Um diese Änderung dauerhaft zu machen, fügen Sie den Befehl zur entsprechenden Profildatei für die Shell hinzu. Fügen Sie in bash beispielsweise eine Zeile wie die folgende zu Ihrer .bash_profile- oder .bashrc-Datei hinzu:

  1. http_proxy = http: // [Benutzername: Kennwort @ Hostname: Port];
  2. exportieren Sie $ http_proxy
4
Shak Daniel

Wenn Sie tsocks oder proxychains installiert und konfiguriert haben, können Sie dies tun

$ tsocks git clone <you_repository>

oder

$ proxychains git clone <you_repository>

um es kürzer zu machen, habe ich eine Symbolverknüpfung /usr/bin/p für proxychains erstellt, damit ich sie so verwenden kann

p git clone <you_repository>

und ich kann es verwenden, um jeden Befehl zu vertreten,

p <cmd-need-be-proxied>

proxychains wird übrigens lange Zeit nicht aktualisiert. Versuchen Sie proxychians-ng

3
fangxing

git proxy am terminal einstellen

ob 

  • sie möchten nicht, dass Sie für jedes Ihrer Git-Projekte einen Proxy einzeln einstellen
  • ich möchte immer den gleichen Proxy für alle Ihre Projekte verwenden

Legen Sie es einmal global fest

git config --global http.proxy username:[email protected]_url:proxy_port
git config --global https.proxy username:[email protected]_url:proxy_port

wenn Sie den Proxy nur für ein git-Projekt festlegen möchten (Es kann Situationen geben, in denen Sie möglicherweise nicht denselben oder einen anderen Proxy für einige Git-Verbindungen verwenden möchten.

//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:[email protected]_url:proxy_port
git config https.proxy username:[email protected]_url:proxy_port

wenn Sie die aktuellen Proxy-Einstellungen anzeigen möchten

git config --list 

wenn Sie den Proxy global entfernen möchten

git config --global --unset http.proxy
git config --global --unset https.proxy

wenn Sie Proxy für nur eine Git-Wurzel entfernen möchten

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
2
Add080bbA

Für Windows-Benutzer: Wenn git config oder set http_proxy= nicht funktioniert, diese Antwort kann helfen:

ersetzen Sie das git://-Protokoll des git-Repositorys durch http://. Beachten Sie, dass Sie http_proxy sowieso zuerst einstellen müssen.

1
DomTomCat

hier ist die Proxy-Einstellung

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
1
hannad rehman

Nachdem ich unermüdlich jede Lösung auf dieser Seite ausprobiert hatte, musste ich stattdessen einen SSH-Schlüssel verwenden! 

  1. Öffnen Sie Git Bash
  2. $ ssh-keygen.exe -t rsa -C 
  3. Öffnen Sie Ihren Git-Provider (Github, Bitbucket usw.).
  4. Fügen Sie den Inhalt der Datei id_rsa.pub in die Eingabeseite des Git-Anbieters ein (überprüfen Sie Ihr Profil).
0
Janac Meena

Ich habe alle obigen Antworten ausprobiert und nichts hat für mich funktioniert, da es Probleme mit der Proxykennwort-Codierung gab.

Dieser Befehl hat funktioniert:

git config --global http-proxy http://[email protected]:PortNumber 

Geben Sie das Kennwort nicht in Ihren Befehl ein. Sie werden dynamisch gefragt, wann Sie versuchen, eine Verbindung zu einem beliebigen git-Repo herzustellen.

0
Ishtdeep Hora

Ich folgte den meisten Antworten, die hier empfohlen wurden. Zuerst bekam ich den folgenden Fehler:

tödlich: Zugriff auf .__ nicht möglich. ' https://github.com/folder/sample.git/ ': schannel: next InitializeSecurityContext fehlgeschlagen: Unbekannter Fehler (0x80092012) - Die Die Widerrufsfunktion konnte den Widerruf für die .__ nicht überprüfen. Zertifikat.

Dann habe ich den folgenden Befehl von @Salim Hamidi ausprobiert 

git config --global http.proxy http://proxyuser:[email protected]:8080

Ich habe aber folgenden Fehler erhalten:

tödlich: Zugriff auf .__ nicht möglich. ' https://github.com/folder/sample.git/ ': Erhaltener HTTP-Code 407 vom Proxy nach CONNECT

Dies kann passieren, wenn der Proxy-Server das SSL-Zertifikat nicht überprüfen kann. Wir möchten also sicherstellen, dass die SSL-Überprüfung deaktiviert ist (nicht empfohlen für nicht vertrauenswürdige Sites). Daher habe ich die folgenden Schritte ausgeführt, die von @Arpit empfohlen wurden, jedoch mit geringfügigen Änderungen:

1.Stellen Sie sicher, dass Sie alle vorherigen Proxy-Einstellungen entfernen:

git config --global --unset http.proxy

2. Dann auflisten und den Inhalt von gitconfig abrufen 

git config --list --show-Origin

3.Letzte Aktualisierung des Inhalts der Datei gitconfig wie folgt:

[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:[email protected]:8080
sslverify = false
[https]
proxy = http://proxyuser:[email protected]:8080
sslverify = false
0
Wael Almadhoun