2012-07-10 18 views
10

Siedzę na serwerze proxy, który zezwala tylko na ruch http/https, jestem w stanie sklonować repozytorium z Github, ale muszę pobrać/wypchnąć używając adresu https i nazwy użytkownika/hasła.Aktualizacja Git Submodule przez https

Teraz moje problemy to repozytorium z podmodulami, kiedy wykonuję git submodule update to jest limit czasu i mogę tylko założyć, że to dlatego, że używa połączenia SSH, które jest zablokowane. (nie wymaga nawet hasła do prywatnych repozytoriów)

+0

To pytanie dotyczy również problemu z 'Permission denied (publickey)' błędu. – BlackVegetable

Odpowiedz

19

W pliku .gitmodules w katalogu głównym repozytorium oraz w pliku .git/config powinieneś znaleźć sekcję dla swojego modułu. Możesz edytować adres URL, aby uzyskać do niego dostęp za pośrednictwem żądania https zamiast ssh.

Oczywiście może to już być adres URL ssh, w którym to przypadku może to być coś innego, ale jest to pierwsze miejsce do sprawdzenia.

+0

To było bardzo pomocne, ale mój problem był nieco bardziej skomplikowany, ponieważ miałem subrepos wewnątrz subrepos. Oto jak mam wszystkie poprawne pliki edytowane w Linuksie: sed -i -e 's/git: \/\ // http: \/\ // g' .gitmodules; znaleźć. -name config -type f -exec sed -i -e 's/git: \/\ // http: \/\ // g' {} \; – Tristan

+1

Uruchamianie '' git submodule sync'' po edycji '' .gitmodules'', jak sugeruje François Koessler, jest koniecznym krokiem do tego, aby zadziałało! –

16

edytować plik .gitmodule z url https, na przykład:

[submodule "vendor/engines/fat_free_crm"] 
    path = vendor/engines/fat_free_crm 
    url = https://github.com/fatfreecrm/fat_free_crm.git 

Następnie uruchom git submodule sync odzwierciedlać zmiany pliku .git/config.

Kredyty: https://stackoverflow.com/a/6632693/1273077

+1

dzięki za wzmianka o 'git module module sync' – MohamedEzz