Saya menyiapkan proyek git lokal saya untuk repositori jarak jauh. Repositori jarak jauh sedang disajikan pada port non-standar (4019).
Tapi itu tidak berhasil. Sebagai gantinya saya mendapatkan pesan kesalahan berikut:
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'
Konfigurasi git lokal saya adalah sebagai berikut :
[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 dan host adalah placeholder untuk port dan host sebenarnya.)
Apa yang salah dengan konfigurasi git saya?
ssh://
di depan url secara eksplisit , sepertinya itu adalah format yang berbeda. begitussh://example.com:444/etc/
juga / etc / di example.com melalui port 44. Sedangkanexample.com:444/etc/
/ 444 / etc / di example.com melalui port 22.git remote set-url origin [email protected]:443/yourname/yourrepo/
tidak akan berhasil. tetapi, jika Anda melakukangit remote set-url origin ssh://[email protected]:443/yourname/yourrepo/
ini akan berhasilJawaban:
Jika Anda meletakkan sesuatu seperti ini di
.ssh/config
:maka Anda harus dapat menggunakan sintaks dasar:
sumber
git clone ssh://username@hostname:333/~/repo
untuk jalur relatif ke direktori beranda Anda ataugit clone ssh://username@hostname:333/path/to/repo
untuk jalur absolutMetode akses git berbasis SSH dapat ditentukan dalam
<repo_path>/.git/config
menggunakan URL lengkap atau sintaks seperti SCP, seperti yang ditentukan di http://git-scm.com/docs/git-clone :Gaya URL:
Gaya SCP:
Perhatikan bahwa gaya SCP tidak mengizinkan perubahan port langsung, sebagai gantinya mengandalkan
ssh_config
definisi host di~/.ssh/config
seperti:Kemudian Anda dapat menguji di shell dengan:
dan ubah URI gaya SCP Anda
<repo_path>/.git/config
sebagai:sumber
scp -P 2020 file/to/copy user@host:path/to/copy/file/to
ssh://
ke sayaurl
. Jika protokol hilang maka penggunaan git port default:22
. Terima kasih.Coba ini
sumber
Ini menghindari masalah Anda daripada memperbaikinya secara langsung, tetapi saya akan merekomendasikan menambahkan
~/.ssh/config
file dan memiliki sesuatu seperti inimaka kamu dapat memiliki
dan Anda juga bisa
ssh git_host
danscp git_host ...
dan semuanya akan bekerja keluar.sumber
SSH tidak menggunakan
:
sintaks saat menentukan port. Cara termudah untuk melakukannya adalah dengan mengedit~/.ssh/config
file Anda dan menambahkan:Kemudian tentukan saja
git.host.de
tanpa nomor port.sumber