Klon git hanya bekerja dengan ssh: // git @ .. dan tidak dengan git @

11

Adakah ide mengapa repo GIT hanya akan berfungsi saat menggunakan ssh://[email protected]/repo.gitdan tidak juga saat menggunakan [email protected]/repo.git?

Ini adalah pengaturan server oleh orang lain jadi tidak tahu bagaimana pengaturannya tetapi pada BitBucket atau GitHub saya hanya dapat menggunakan [email protected]/repo.gitdan itu bekerja dan klon repo menggunakan protokol SSH. Adakah ide mengapa untuk server ini iy hanya berfungsi saat menggunakan ssh://[email protected]/repo.git?

Jadi saya perlu menambahkan ssh://di depan.

daniels
sumber
Apakah server menggunakan port SSH alternatif? Sepertissh://[email protected]:2222/
7ochem
Tidak. Ini 22. Seperti ssh://[email protected]/repo.gitbekerja sementara [email protected]/repo.gittidak. Saya tidak menambahkan :portdalam kasus apa pun. Ketika saya mencoba tanpa ssh://saya mengerti fatal: repository '[email protected]/something/repo.git' does not exist. Dengan ssh://[email protected]/something/repo.gititu berhasil.
daniels
Masalah konfigurasi semacam (mungkin masalah firewall? Nama pengguna?) - Saya memiliki masalah serupa dengan pengaturan di institusi saya. Namun akses melalui https berfungsi - jadi solusinya adalah menggunakan aturan penulisan ulang dari utas ini: stackoverflow.com/questions/15589682/…
DetlevCM

Jawaban:

32

Anda menggunakan sintaks yang salah.

Ketika Anda menghapus scheme://awalan, git tidak lagi mengartikan alamat Anda dalam gaya URL, tetapi sebagai gaya rcp / scp. Tetapi untuk alamat gaya rcp / scp, path harus dipisahkan dari user @ host menggunakan titik dua: (menentukan port tidak didukung). Sebagai contoh:

git clone [email protected]:repo.git

git clone [email protected]:daniels/example.git

Tanpa titik dua, git hanya akan menginterpretasikan alamat sebagai jalur lokal.

(Anda dapat melihat lebih detail di git clone atau git fetch manual page.)

pengguna1686
sumber
Hah, misteri terpecahkan. Kamu benar. Terima kasih.
daniels
Saya menggunakan server BitBucket (bekas Stash, yang Anda instal di server Anda, bukan versi cloud) dan hanya menyalin & menempelkan perintah GIT dari sana. Untuk beberapa alasan mereka tidak menambahkan yang hilang :.
daniels