Konfiguruję lokalny projekt git dla zdalnego repozytorium. Zdalne repozytorium jest udostępniane na niestandardowym porcie (4019).
Ale to nie działa. Zamiast tego pojawia się następujący komunikat o błędzie:
ssh: connect to host git.host.de:4019 port 22: Connection refused
fatal: The remote end hung up unexpectedly
error: failed to push to 'ssh://[email protected]:4019/var/cache/git/project.git'
Moja lokalna konfiguracja git jest następująca :
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://[email protected]:4019/var/cache/git/project.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
(Port i host to symbole zastępcze dla rzeczywistego portu i hosta).
Co jest nie tak z moją konfiguracją git?
ssh://
przed adresem URL, będzie to inny format. tak samo jakssh://example.com:444/etc/
/ etc / na example.com przez port 44. Natomiastexample.com:444/etc/
/ 444 / etc / na example.com przez port 22.git remote set-url origin [email protected]:443/yourname/yourrepo/
, nie zadziała. ale jeśli to zrobiszgit remote set-url origin ssh://[email protected]:443/yourname/yourrepo/
, zadziałaOdpowiedzi:
Jeśli umieścisz coś takiego w swoim
.ssh/config
:wtedy powinieneś móc użyć podstawowej składni:
źródło
git clone ssh://username@hostname:333/~/repo
ścieżki względnej do katalogu domowego lubgit clone ssh://username@hostname:333/path/to/repo
ścieżki bezwzględnejMetodę dostępu git opartą na SSH można określić
<repo_path>/.git/config
za pomocą pełnego adresu URL lub składni podobnej do SCP, jak określono w http://git-scm.com/docs/git-clone :Styl adresu URL:
Styl SCP:
Zauważ, że styl SCP nie pozwala na bezpośrednią zmianę portu, opierając się zamiast tego na
ssh_config
definicji hosta w twoim, na~/.ssh/config
przykład:Następnie możesz przetestować w powłoce za pomocą:
i zmień swój identyfikator URI w stylu SCP w
<repo_path>/.git/config
:źródło
scp -P 2020 file/to/copy user@host:path/to/copy/file/to
ssh://
do mojegourl
. Jeśli protokół brakuje następnie git używa domyślnego portu:22
. Dziękuję Ci.Spróbuj tego
źródło
Pozwala to uniknąć problemu, zamiast naprawiać go bezpośrednio, ale polecam dodanie
~/.ssh/config
pliku i coś takiegowtedy możesz mieć
a można też
ssh git_host
iscp git_host ...
wszystko się ułoży.źródło
SSH nie używa
:
składni podczas określania portu. Najłatwiej to zrobić, edytując~/.ssh/config
plik i dodając:Następnie podaj tylko
git.host.de
bez numeru portu.źródło