541 Stimmen

Wie kann ich ein Git-Repository über einen HTTP-Proxy abrufen?

Hinweis: Der beschriebene Anwendungsfall bezieht sich zwar auf die Verwendung von Submodulen innerhalb eines Projekts, aber das Gleiche gilt für ein normales git clone eines Repositorys über HTTP.

Ich habe ein Projekt unter Git-Kontrolle. Ich würde gerne ein Submodul hinzufügen:

git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu

Aber ich bekomme

...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'

Ich habe meine HTTP_PROXY eingerichtet:

c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80

Ich habe sogar eine globale Git-Einstellung für den http-Proxy:

c:\project> git config --get http.proxy
http://proxy.mycompany:80

Hat jemand erreicht, dass HTTP-Abrufe durch einen Proxy konsistent funktionieren? Was wirklich seltsam ist, ist, dass ein paar Projekte auf GitHub gut funktionieren ( awesome_nested_set zum Beispiel), aber andere scheitern immer wieder ( Schienen zum Beispiel).

26voto

bbaassssiiee Punkte 5424

Wenn Ihr Netzwerkteam die SSL-Prüfung durch Umschreiben von Zertifikaten durchführt, dann hat die Verwendung einer http-URL anstelle einer https-URL in Verbindung mit der Einstellung dieser Variable bei mir funktioniert.

git config --global http.proxy http://proxy:8081

22voto

TonyT_32909023190 Punkte 709

Bei mir funktioniert git:// einfach nicht über den Proxy, obwohl https:// funktioniert. Das bereitete mir etwas Kopfzerbrechen, weil ich Skripte laufen hatte, die alle git:// verwendeten, so dass ich sie nicht einfach alle ändern konnte. Ich habe jedoch dieses GEM gefunden

git config --global url."https://github.com/".insteadOf git://github.com/

20voto

Stéphane B. Punkte 3140

Sie könnten auch .gitconfig-Datei bearbeiten im Verzeichnis %userprofile% auf dem Windows-System ( notepad %Benutzerprofil%.gitconfig ) oder im Verzeichnis ~ auf dem Linux-System ( vi ~/.gitconfig ) und einen http-Abschnitt hinzufügen wie unten.

Inhalt der Datei .gitconfig :

[http]
        proxy = http://proxy.mycompany:80

18voto

Benjamin Wootton Punkte 2069

Dies ist eine alte Frage, aber wenn Sie unter Windows arbeiten, sollten Sie auch HTTPS_PROXY einstellen, wenn Sie über eine https-URL abrufen. Hat bei mir funktioniert!

14voto

Thor88 Punkte 313

Setzen Sie Git credential.helper auf wincred.

git config --global credential.helper wincred

Stellen Sie sicher, dass es nur 1 credential.helper gibt

git config -l

Wenn es mehr als 1 gibt und es nicht auf wincred eingestellt ist, entfernen Sie es.

git config --system --unset credential.helper

Setzen Sie nun den Proxy ohne Passwort.

git config --global http.proxy http://<YOUR WIN LOGIN NAME>@proxy:80

Prüfen Sie, ob alle von Ihnen hinzugefügten Einstellungen gut aussehen....

git config --global -l

Jetzt sind Sie startklar!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X