Hinweis: Während es sich bei dem beschriebenen Anwendungsfall um die Verwendung von Submodulen innerhalb eines Projekts handelt, gilt dies auch für ein normales git clone
Repository über HTTP.
Ich habe ein Projekt unter Git-Kontrolle. Ich möchte ein Submodul hinzufügen:
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
Aber ich verstehe
...
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 mein 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 HTTP-Abrufe erhalten, um konsistent über einen Proxy zu arbeiten? Was wirklich seltsam ist, ist, dass einige Projekte auf GitHub gut funktionieren ( awesome_nested_set
zum Beispiel), andere jedoch durchweg fehlschlagen ( zum Beispiel Schienen ).
git
proxy
git-submodules
James A. Rosen
quelle
quelle
--global
zugit config
.Antworten:
Sie können auch den HTTP-Proxy festlegen, den Git in der globalen Konfigurationseigenschaft verwendet
http.proxy
:So authentifizieren Sie sich beim Proxy:
( Das Authentifizierungsformat geht an @EugeneKulabuhov und @JaimeReynoso .)
quelle
git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080
Syntax, um Benutzername / PasswortDarauf gibt es bereits einige gute Antworten. Ich dachte jedoch, ich würde mich einschalten, da einige Proxyserver die Authentifizierung mit einer Benutzer-ID und einem Kennwort erfordern. Manchmal kann dies auf einer Domain sein.
Beispiel: Wenn Ihre Proxyserverkonfiguration wie folgt lautet:
Fügen Sie dann
.gitconfig
mit dem folgenden Befehl zu Ihrer Datei hinzu:Mach dir keine Sorgen
https
. Solange der angegebene Proxyserver http und https unterstützt, reicht ein Eintrag in der Konfigurationsdatei aus.Sie können dann überprüfen, ob der Befehl den Eintrag
.gitconfig
erfolgreich zu Ihrer Datei hinzugefügt hat, indem Sie Folgendes tuncat .gitconfig
:Am Ende der Datei sehen Sie einen Eintrag wie folgt:
Das ist es!
quelle
%40
es per URL codieren, und es funktioniert.Was schließlich funktionierte, war das Festlegen der
http_proxy
Umgebungsvariablen. Ich hatteHTTP_PROXY
richtig eingestellt, aber Git mag anscheinend die Kleinbuchstabenversion besser.quelle
http.proxy
in der globalen Git-Konfiguration? In Ihrer Frage legen Siehttp.proxy
in der lokalen Repository-Konfiguration fest.https_proxy
https.proxy
schien für mich zu funktionieren, als ich https über Github benutztehttps_proxy
bedeutet dies, dass Siehttps
nicht verwendet haben, umhttp
welche Frage es sich handelt.Es sieht so aus, als würden Sie eine MingW-Kompilierung von Git unter Windows verwenden (oder möglicherweise eine andere, von der ich noch nichts gehört habe). Es gibt Möglichkeiten, dies zu debuggen: Ich glaube, dass die gesamte http-Proxy-Arbeit für Git von Curl ausgeführt wird. Legen Sie diese Umgebungsvariable fest, bevor Sie git ausführen:
Dies sollte Ihnen zumindest eine Vorstellung davon geben, was sich hinter den Kulissen abspielt.
quelle
Wenn Sie nur Proxy für ein angegebenes Repository verwenden möchten, benötigen Sie dies nicht für andere Repositorys. Der bevorzugte Weg ist die
-c, --config <key=value>
Option, wenn Siegit clone
ein Repository. z.Bquelle
--config
mehrmals angeben , z. B. wann Sie auch festlegen möchtenhttps.proxy
.Wenn Ihr Netzwerkteam eine SSL-Überprüfung durch Umschreiben von Zertifikaten durchführt, funktioniert die Verwendung einer http-URL anstelle einer https-URL in Kombination mit der Einstellung dieser Variable für mich.
quelle
Sie können auch die .gitconfig-Datei bearbeiten, die sich im Verzeichnis% userprofile% auf dem Windows-System ( Editor% userprofile% .gitconfig ) oder im Verzeichnis ~ auf dem Linux-System ( vi ~ / .gitconfig ) befindet, und einen http-Abschnitt wie unten hinzufügen .
Inhalt der .gitconfig-Datei:
quelle
Für mich funktioniert git: // einfach nicht über den Proxy, obwohl https: // dies tut. Dies verursachte einige Kopfschmerzen, da ich Skripte ausführte, die alle git: // verwendeten, sodass ich sie nicht einfach alle ändern konnte. Allerdings habe ich dieses Juwel gefunden
quelle
Dies ist eine alte Frage, aber wenn Sie unter Windows arbeiten, sollten Sie auch HTTPS_PROXY festlegen, wenn Sie über eine https-URL abrufen. Hat für mich gearbeitet!
quelle
https_proxy
In meinem Fall (msysgit unter Windows XP) war es ausreichend, die Umgebungsvariable allein festzulegen (kein git globaler oder Repo-Proxy-Optionssatz).Ich finde
http.proxy
undGIT_PROXY_COMMAND
arbeite nicht für meinen authentifizierten http-Proxy. Der Proxy wird in keiner Weise ausgelöst. Aber ich finde einen Weg, dies zu umgehen.Erstellen Sie eine Authfile. Das Format
authfile
ist:user_name:password
unduser_name
,password
ist Ihr Benutzername und Passwort Ihres Proxy zuzugreifen. Um eine solche Datei zu erstellen, führen Sie einfach den folgenden Befehl aus :echo "username:password" > ~/.ssh/authfile
.Bearbeiten Sie
~/.ssh/config
und stellen Sie sicher, dass die Berechtigung lautet644
:chmod 644 ~/.ssh/config
Nehmen Sie als Beispiel github.com und fügen Sie die folgenden Zeilen hinzu
~/.ssh/config
:Wenn Sie jetzt etwas tun
[email protected]
, wird der Proxy automatisch verwendet. Sie können das Gleiche auch mit Bitbucket tun .Dies ist nicht so elegant wie andere Ansätze, aber es funktioniert wie ein Zauber.
quelle
Wenn Sie unter Windows Ihr Kennwort nicht im Klartext in .gitconfig eingeben möchten, können Sie es verwenden
Es authentifiziert Sie gegen einen normalen oder sogar Windows NTLM-Proxy und startet den localhost-Proxy ohne Authentifizierung.
Um es zum Laufen zu bringen:
Zeigen Sie mit git auf Ihren neuen localhost-Proxy:
quelle
Für mich hat es funktioniert:
Erstellen Sie eine Datei in Ihrem $ BIN_PATH / gitproxy mit:
Vergessen Sie nicht, ihm Ausführungsberechtigungen zu erteilen
Führen Sie die folgenden Befehle aus, um die Umgebung einzurichten:
quelle
git://
Protokoll-URLs für (seltene) Git-Server funktioniert, die https nicht unterstützen. Funktioniert auch unter Windows mit einer geeigneten Batchdatei und einem Socat für Windows.Proxy auf Git einrichten
Befehl
Beispiel
quelle
Setzen Sie Git credential.helper auf wincred.
Stellen Sie sicher, dass nur 1 Berechtigungsnachweis vorhanden ist
Wenn es mehr als 1 gibt und es nicht auf wincred eingestellt ist, entfernen Sie es.
Stellen Sie nun den Proxy ohne Passwort ein.
Überprüfen Sie, ob alle von Ihnen hinzugefügten Einstellungen gut aussehen.
Jetzt kannst du loslegen!
quelle
Ich hatte das gleiche Problem mit einer etwas anderen Lösung: REBUILDING GIT MIT HTTP SUPPORT
Das
git:
Protokoll funktionierte nicht über meine Unternehmensfirewall.Dies ist beispielsweise eine Zeitüberschreitung:
curl github.com
funktionierthttp_proxy
jedoch einwandfrei , sodass ich weiß, dass meine Umgebungsvariable korrekt ist.Ich habe versucht
http
, wie unten zu verwenden, habe aber sofort einen Fehler erhalten.Ich habe versucht, Git wie folgt neu zu kompilieren:
habe aber trotzdem den fatalen fehler bekommen.
Nach einigen frustrierenden Stunden las ich schließlich die Konfigurationsdatei und sah Folgendes:
Ich erinnerte mich damals, dass ich mich nicht
curl
an die Quelle gehalten hatte, und suchte nach den Header-Dateien. Sicher genug, sie wurden nicht installiert. Das war das Problem. Make hat sich nicht über die fehlenden Header-Dateien beschwert. Ich habe also nicht bemerkt, dass die--with-curl
Option nichts bewirkt hat (es ist tatsächlich die Standardeinstellung in meiner Version vongit
).Ich habe Folgendes getan, um das Problem zu beheben:
Die für make benötigten Header wurden hinzugefügt:
Entfernt
git
von/usr/local
(da ich möchte, dass die neue Installation dort lebt).Ich habe einfach
git*
von/usr/local/share
und entfernt/usr/local/libexec
Es wurde nach den Include-Verzeichnissen gesucht, die die Dateien
curl
und dieexpat
Header-Dateien enthalten, und diese dann (weil ich sie durchgelesen hatte) wie folgtconfigure
zur Umgebung hinzugefügt:Lief
configure
mit den folgenden Optionen, die wiederum in derconfigure
Datei selbst beschrieben wurden, und waren auch die Standardeinstellungen, aber was solls:Und jetzt
http
funktioniertgit
über meine Unternehmens-Firewall:quelle
Um dies zu veröffentlichen, da es das erste Ergebnis bei Google ist, löst dieser Blog-Beitrag, den ich gefunden habe, das Problem für mich, indem er die Curl-Zertifikate aktualisiert.
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
quelle
git config --global http.sslcainfo NEW_CERTS_BUNDLE.crt
wie beschrieben in: stackoverflow.com/a/8248484/98528 hat es für mich getan! Vielen Dank!Das hat bei mir funktioniert.
quelle
Sie können verwenden:
quelle
Verwenden Sie Proxy-Ketten
Update: Proxy-Ketten werden eingestellt, verwenden Sie stattdessen Proxy-Ketten-ng .
quelle
Für Windows
Gehe zu -> C: / Benutzer / Benutzername / gitconfig
Aktualisieren Sie die gitconfig-Datei mit den folgenden Details
[http]
[https]
[http]
Wie überprüfe ich meine Proxy- und Portnummer?
Internet Explorer -> Einstellungen -> Internetoptionen -> Verbindungen -> LAN-Einstellungen
quelle
Die folgende Methode funktioniert bei mir:
quelle
Erwähnenswert: Die meisten Beispiele im Internet zeigen Beispiele wie
Es scheint also, dass Sie - wenn Ihr Proxy eine Authentifizierung benötigt - müssen Ihr Unternehmen-Passwort in der Git-config verlassen. Welches ist nicht wirklich cool.
Wenn Sie den Benutzer jedoch nur ohne Kennwort konfigurieren:
Git scheint (zumindest auf meinem Windows-Computer ohne Anmeldeinformations-Helfer) dies zu erkennen und fordert beim Repo-Zugriff zur Eingabe des Proxy-Passworts auf.
quelle
Dies ist kein Problem mit Ihrem Proxy. Es ist ein Problem mit Github (oder Git). Es schlägt für mich unter git-1.6.0.1 auch unter Linux fehl. Fehler bereits gemeldet (von Ihnen nicht weniger).
Stellen Sie sicher, dass Sie Ihre Pasteten löschen, sie sind bereits auf Google. Edit: Muss geträumt haben, ich denke du kannst sie nicht löschen. Verwenden Sie stattdessen Gist ?
quelle
$ http_proxy ist für http://github.com .... $ https_proxy ist für https://github.com ...
quelle
Die obigen Antworten haben bei mir funktioniert, wenn mein Proxy keine Authentifizierung benötigt. Wenn Sie einen Proxy verwenden, für den Sie sich authentifizieren müssen, können Sie CCProxy ausprobieren. Ich habe ein kleines Tutorial, wie man es hier einrichtet.
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
Ich konnte schieben, ziehen, neue Repos erstellen. Alles hat gut funktioniert. Stellen Sie sicher, dass Sie eine neue Deinstallation und Neuinstallation der neuen Version durchführen, wenn Sie Probleme mit Git haben, wie ich es getan habe.
quelle
Versuchen Sie, wie @ user2188765 bereits betont hat, das
git://
Protokoll des Repositorys durch zu ersetzenhttp[s]://
. Siehe auch diese Antwortquelle
Ich bin mit https um den Proxy herumgekommen ... einige Proxys überprüfen nicht einmal https.
quelle
Da dies von vielen beantwortet wurde, ist dies jedoch nur für Winodws USER, der mit auth hinter dem Proxy steht.
Neuinstallation (zuerst fehlgeschlagen, nicht entfernen).
Wenn Sie ein spezielles Zeichen in user / pass haben, verwenden Sie url_encode
quelle