2010-07-29 16 views
8

Mój kolega ma zdalne repozytorium git, które chciałem sklonować i podał adres URL [email protected]: 443/repo.git. ssh jest w tym przypadku wpisane na porcie 443.git clone wymaga ssh: // protokołu, być może nie powinno?

Próbowałem sklonować wykonując git clone [email protected]:443/repo.git, ale czas działania się skończył. Myślałem, że git domyślnie ssh jako jego protokół i nie jestem pewien, dlaczego to nie działa.

Jeśli jawnie określę ssh w adresie URL, takim jak git clone ssh://[email protected]:443/repo.git, działa on tak samo normalnie.

Czy to oczekiwane zachowanie git? Dlaczego pierwszy adres URL nie działa, ale drugi działa?

Odpowiedz

10

Tak. "Domyślna" składnia klonu jest podobna do scp. adresy URL scp wyglądają jak "user @ host: path". Zwróć uwagę na dwukropek; jeśli używasz [email protected]:443/repo.git, Git myśli, że próbujesz sklonować ścieżkę 443/repo.git z [email protected]. Jeśli musisz określić port, musisz użyć składni ssh-style (tak jak to robiłeś).

+2

Lub użyj '.ssh/config', aby określić port. –

+0

Masz na myśli, że każdy klient musi edytować swój ~ ~/.ssh/config'? Czy nie możemy zrobić tego po stronie serwera? –