Uwaga: chociaż opisany przypadek użycia dotyczy użycia podmodułów w projekcie, to samo dotyczy normalnej git clone
wersji repozytorium przez HTTP.
Mam projekt pod kontrolą Git. Chciałbym dodać submoduł:
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
Ale rozumiem
...
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'
Mam skonfigurowane moje HTTP_PROXY:
c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80
Mam nawet globalne ustawienie Git dla proxy HTTP:
c:\project> git config --get http.proxy
http://proxy.mycompany:80
Czy ktoś pobrał HTTP, aby konsekwentnie działał przez proxy? Naprawdę dziwne jest to, że kilka projektów w GitHub działa dobrze ( awesome_nested_set
na przykład), ale inne konsekwentnie zawodzą ( na przykład szyny ).
git
proxy
git-submodules
James A. Rosen
źródło
źródło
--global
dogit config
.Odpowiedzi:
Możesz także ustawić serwer proxy HTTP, którego używa Git we właściwości konfiguracji globalnej
http.proxy
:Aby uwierzytelnić się za pomocą proxy:
( Podziękowania dla @EugeneKulabuhov i @JaimeReynoso za format uwierzytelnienia.)
źródło
git config --global http.proxy http://mydomain\\myusername:mypassword@myproxyserver:8080
składni, aby podać nazwę użytkownika / hasłoJest na to kilka świetnych odpowiedzi. Jednak pomyślałem, że się włożę, ponieważ niektóre serwery proxy wymagają uwierzytelnienia przy użyciu identyfikatora użytkownika i hasła. Czasami może to być domena.
Na przykład jeśli konfiguracja serwera proxy jest następująca:
Następnie dodaj do
.gitconfig
pliku za pomocą następującego polecenia:Nie martw się
https
. Tak długo, jak określony serwer proxy obsługuje http i https, wystarczy jeden wpis w pliku konfiguracyjnym.Następnie możesz sprawdzić, czy polecenie
.gitconfig
pomyślnie dodało wpis do pliku, wykonująccat .gitconfig
:Na końcu pliku zobaczysz następujący wpis:
Otóż to!
źródło
%40
i zadziała.Ostatecznie działało ustawienie
http_proxy
zmiennej środowiskowej. UstawiłemHTTP_PROXY
poprawnie, ale git najwyraźniej bardziej lubi wersję z małymi literami.źródło
http.proxy
w globalnej konfiguracji Git działa? W swoim pytaniu ustawiaszhttp.proxy
konfigurację lokalnego repozytorium.https_proxy
https.proxy
Wydawało się, że działa dla mnie, gdyhttps_proxy
oznacza to, żehttps
nie używaszhttp
pytania, o które chodzi.Wygląda na to, że używasz kompilacji Git mingw w systemie Windows (lub innej, o której nie słyszałem). Istnieją sposoby na debugowanie tego: wierzę, że cała praca proxy HTTP dla git jest wykonywana przez curl. Ustaw tę zmienną środowiskową przed uruchomieniem git:
To powinno przynajmniej dać ci wyobrażenie o tym, co dzieje się za kulisami.
źródło
Jeśli chcesz po prostu używać proxy w określonym repozytorium, nie potrzebujesz go w innych repozytoriach. Preferowanym sposobem jest
-c, --config <key=value>
opcja, gdy jesteśgit clone
repozytorium. na przykładźródło
--config
wiele razy, np. Kiedy chcesz również ustawićhttps.proxy
.Kiedy twój zespół sieciowy dokonuje inspekcji ssl poprzez przepisywanie certyfikatów, to użycie adresu URL http zamiast adresu https w połączeniu z ustawieniem tej zmiennej działało dla mnie.
źródło
Możesz także edytować plik .gitconfig znajdujący się w katalogu% userprofile% w systemie Windows ( notatnik% userprofile% .gitconfig ) lub w katalogu ~ w systemie Linux ( vi ~ / .gitconfig ) i dodać sekcję http jak poniżej.
Zawartość pliku .gitconfig:
źródło
Dla mnie git: // po prostu nie działa przez proxy, chociaż działa https: //. To spowodowało trochę bólu głowy, ponieważ uruchomiłem skrypty, które wszystkie używały git: //, więc nie mogłem tak łatwo ich wszystkich zmienić. Jednak znalazłem ten GEM
źródło
To stare pytanie, ale jeśli korzystasz z systemu Windows, rozważ ustawienie HTTPS_PROXY, jeśli pobierasz za pośrednictwem adresu URL https. Pracował dla mnie!
źródło
https_proxy
samą zmienną środowiskową (bez opcji git global lub proxy proxy repo) w moim przypadku (msysgit w systemie Windows XP).Nie mogę znaleźć
http.proxy
aniGIT_PROXY_COMMAND
pracować dla mojego uwierzytelnionego serwera proxy HTTP. Serwer proxy nie jest uruchamiany w żaden sposób. Ale znajduję sposób na obejście tego.Utwórz plik auth. Format
authfile
to:,user_name:password
iuser_name
,password
to twoja nazwa użytkownika i hasło dostępu do twojego proxy. Aby utworzyć taki plik, wystarczy uruchomić komendę tak:echo "username:password" > ~/.ssh/authfile
.Edytuj
~/.ssh/config
i upewnij się, że jego uprawnienie to644
:chmod 644 ~/.ssh/config
Weźmy na przykład github.com, dodaj następujące wiersze do
~/.ssh/config
:Teraz, gdy cokolwiek zrobisz
[email protected]
, automatycznie użyje serwera proxy. Możesz łatwo zrobić to samo z Bitbucket .To nie jest tak eleganckie jak inne podejścia, ale działa jak urok.
źródło
W systemie Windows, jeśli nie chcesz wstawiać hasła do .gitconfig jako zwykłego tekstu, możesz użyć
Uwierzytelnia cię w stosunku do zwykłego lub nawet Windows NTLM proxy i uruchamia localhost-proxy bez uwierzytelnienia.
Aby go uruchomić:
Wskaż git na nowy serwer proxy localhost:
źródło
Dla mnie to zadziałało:
Utwórz plik wewnątrz $ BIN_PATH / gitproxy za pomocą:
Nie zapomnij dać mu uprawnień do wykonywania
Uruchom następujące polecenia, aby skonfigurować środowisko:
źródło
git://
adresów URL protokołów, dla tych (rzadkich) serwerów git, które nie obsługują protokołu https. Działa również w systemie Windows, z odpowiednim plikiem wsadowym i socat dla systemu Windows.Skonfiguruj proxy do git
Komenda
przykład
źródło
Ustaw Git credential.helper na wincred.
Upewnij się, że jest tylko 1 referencja. Pomocnik
Jeśli jest więcej niż 1 i nie ustawiono WinCred, usuń go.
Teraz ustaw proxy bez hasła.
Sprawdź, czy wszystkie dodane ustawienia wyglądają dobrze ....
Teraz możesz iść!
źródło
Miałem ten sam problem z nieco inną poprawką: ODBUDOWAĆ GIT Z WSPARCIEM HTTP
git:
Protokół nie działa przez moją korporacyjnej zapory.Na przykład upłynął limit czasu:
curl github.com
działa jednak dobrze, więc wiem, że mojahttp_proxy
zmienna środowiskowa jest poprawna.Próbowałem użyć
http
, jak poniżej, ale dostałem natychmiastowy błąd.Próbowałem przekompilować git tak:
ale nadal występuje błąd krytyczny.
Wreszcie po kilku frustrujących godzinach przeczytałem plik konfiguracyjny i zobaczyłem to:
Przypomniałem sobie wtedy, że nie zastosowałem się
curl
do źródła i zacząłem szukać plików nagłówkowych. Rzeczywiście, nie zostały zainstalowane. To był problem. Marka nie narzeka na brakujące pliki nagłówkowe. Więc nie zdawałem sobie sprawy, że--with-curl
opcja nic nie zrobiła (w rzeczywistości jest ona domyślna w mojej wersjigit
).Wykonałem następujące czynności, aby to naprawić:
Dodano nagłówki potrzebne do wykonania:
Usunięto
git
z/usr/local
(ponieważ chcę, aby nowa instalacja tam była).Po prostu usunąłem
git*
z/usr/local/share
i/usr/local/libexec
Szukano katalogów dołączających zawierających pliki nagłówkowe
curl
iexpat
, a następnie (ponieważ przeczytałemconfigure
) dodałem je do środowiska w taki sposób:Działa
configure
z następującymi opcjami, które ponownie zostały opisane w samymconfigure
pliku, a także były domyślnymi, ale do cholery:A teraz
http
działa zgit
moją zaporą firmową:źródło
Wystarczy, że opublikuję to, ponieważ jest to pierwszy wynik w Google. Znalazłem ten post na blogu, rozwiązując dla mnie problem poprzez zaktualizowanie certyfikatów curl.
http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html
źródło
git config --global http.sslcainfo NEW_CERTS_BUNDLE.crt
jak opisano w: stackoverflow.com/a/8248484/98528 zrobił to dla mnie! Dzięki!To mi zadziałało.
źródło
możesz użyć:
źródło
Użyj proxy
aktualizacja: proxy nie jest kontynuowane, zamiast tego użyj proxy-łańcuchów .
źródło
Dla Windowsa
Idź do -> C: / Users / nazwa_użytkownika / gitconfig
Zaktualizuj plik gitconfig z poniższymi szczegółami
[http]
[https]
[http]
Jak sprawdzić swój serwer proxy i numer portu?
Internet Explorer -> Ustawienia -> Opcje internetowe -> Połączenia -> Ustawienia sieci LAN
źródło
Poniższa metoda działa dla mnie:
źródło
Warto wspomnieć: większość przykładów w sieci pokazuje przykłady takie jak
Wygląda więc na to, że - jeśli twoje proxy wymaga uwierzytelnienia - musisz pozostawić hasło firmy w git-config. Co nie jest naprawdę fajne.
Ale jeśli tylko skonfigurujesz użytkownika bez hasła:
Wydaje się, że Git (przynajmniej na moim komputerze z systemem Windows bez pomocnika poświadczeń) rozpoznaje to i prosi o podanie hasła proxy przy dostępie do repo.
źródło
To nie jest problem z twoim proxy. Jest to problem z githubem (lub gitem). Nie udaje mi się to także na git-1.6.0.1 na Linuksie. Błąd jest już zgłaszany (przez ciebie nie mniej).
Pamiętaj, aby usunąć swoje pasty, są już w Google. Edycja: Musiałeś marzyć, chyba nie możesz ich usunąć. Zamiast tego użyć Gist ?
źródło
$ http_proxy jest dla http://github.com .... $ https_proxy jest dla https://github.com ...
źródło
Powyższe odpowiedzi działały dla mnie, gdy mój serwer proxy nie wymaga uwierzytelnienia. Jeśli używasz serwera proxy, który wymaga uwierzytelnienia, możesz spróbować CCProxy. Mam mały samouczek, jak go tutaj skonfigurować,
http://blog.praveenkumar.co.in/2012/09/proxy-free-windows-xp78-and-mobiles.html
Byłem w stanie pchać, ciągnąć, tworzyć nowe repozytorium. Wszystko działało dobrze. Upewnij się, że wykonałeś czystą deinstalację i ponowną instalację nowej wersji, jeśli masz problemy z Git, tak jak ja.
źródło
jak już zauważył @ user2188765, spróbuj zastąpić
git://
protokół repozytoriumhttp[s]://
. Zobacz także tę odpowiedźźródło
Obejrzałem proxy używając https ... niektóre proxy nawet nie sprawdzają https.
źródło
Jak odpowiedziało wielu, ale to tylko dla Winodws USER, który stoi za proxy z auth.
Ponowna instalacja (pierwsza nieudana, nie usuwaj).
jeśli masz jakiś specjalny znak w user / pass użyj url_encode
źródło