Pracuję za proxy http. Próbuję sklonować drzewo źródłowe Androida przy użyciu ich narzędzia „repo”.
To narzędzie nalega na używanie git://
adresów URL, mimo że http://
adresy URL również działają. W rezultacie nie mogę pobrać źródła.
Czy można wymusić, git
aby zawsze używać http
?
Edycja: mój serwer http_proxy jest poprawnie skonfigurowany. Na przykład to działa:
git clone http://android.git.kernel.org/platform/manifest.git
Ale to nie działa (errno = Przekroczono limit czasu połączenia):
git clone git://android.git.kernel.org/platform/manifest.git
Więc ta odpowiedź tak naprawdę mi nie pomaga.
Odpowiedzi:
Oto przykład przepisania domyślnego protokołu dla GitHub:
Dokumentacja Git dla
url.<base>.insteadOf
:źródło
git remote -v
natychmiast pokazuje efektinsteadOf
ipushInsteadOf
configs[email protected]:...
formatu adresów URL. To zadziałało:git config --global url."https://github.com/".insteadOf '[email protected]:'
dla mnie.Nie wiem, w jaki sposób to narzędzie repozytorium korzysta z Gita (i czy możesz skonfigurować 'repo' tak, aby używał protokołu http), ale możesz spróbować oszukać go za pomocą
url.<base>.insteadOf
zmiennej konfiguracyjnej (zobacz strony podręcznika git-config i git-fetch ).Czy próbowałeś użyć
core.gitProxy
do przejścia przez firewall, jeśli jest to problem z użyciem protokołu git?źródło
Miałem ten sam problem z rekurencyjnym pobieraniem modułów podrzędnych w repozytorium git. Jestem za szaloną zaporą ogniową, która nie zezwala na połączenia wychodzące na porcie git. Niektóre z podmodułów podmodułów zostały zakodowane jako
git://github.com/blah/blah.git
. To zabiło moją rekurencyjną populację podmodułów. Sposób obejścia jest następujący:Zastępuje
git://
zehttps://<GITUSERNAME>@
wszystkich adresów URL repozytorium modułem. Musisz zastąpić<GITUSERNAME>
własną nazwą użytkownika git. Pamiętaj również, że--global
jest wymagany; samo dodanie tej konfiguracji do katalogu podstawowego repozytorium nie działa.źródło
Możesz sprawdzić,
~/.gitconfig
czy nadpisujesz SSH za pomocą https: // lub odwrotnie.źródło