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?
Zu verwendender Befehl:
git config --global http.proxy http://proxyuser:[email protected]:8080
proxyuser
in Ihren Proxy-Benutzerproxypwd
in Ihr Proxy-Passwortproxy.server.com
in die URL Ihres Proxy-Servers8080
in den Proxy-Port, der auf Ihrem Proxy-Server konfiguriert istWenn 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
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
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
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.
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"'
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
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]
Versuchen Sie, Folgendes in die Datei ~/.gitconfig einzufügen:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
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 ~/.gitconfig
core.gitproxy
den Namen dieses Skripts.
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
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)
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
- Öffnen Sie die Systemsteuerung und klicken Sie auf das Symbol System.
- Klicken Sie auf der Registerkarte Erweitert auf Umgebungsvariablen.
- Klicken Sie im Bereich Systemvariablen auf Neu.
- 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:
- http_proxy = http: // [Benutzername: Kennwort @ Hostname: Port];
- exportieren Sie $ http_proxy
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
git proxy am terminal einstellen
ob
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
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.
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>
Nachdem ich unermüdlich jede Lösung auf dieser Seite ausprobiert hatte, musste ich stattdessen einen SSH-Schlüssel verwenden!
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.
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