2010-07-29 28 views
8

Một đồng nghiệp của tôi có một repo git từ xa mà tôi muốn sao chép và ông đã cung cấp một url của [email protected]: 443/repo.git. ssh được liệt kê trên cổng 443 trong trường hợp này.git clone yêu cầu giao thức ssh: // khi có lẽ nó không nên?

Tôi đã cố gắng sao chép bằng cách thực hiện git clone [email protected]:443/repo.git nhưng thời gian hoạt động hết. Tôi đã nghĩ git mặc định để ssh như giao thức của nó và tôi không chắc chắn lý do tại sao điều này không hoạt động.

Nếu tôi chỉ định rõ ràng ssh trong url như git clone ssh://[email protected]:443/repo.git, nó hoạt động như bình thường.

Hành vi đó có được mong đợi không? Tại sao url đầu tiên không hoạt động nhưng url thứ hai không hoạt động?

Trả lời

10

Vâng. Cú pháp sao chép "mặc định" là giống như scp. URL scp trông giống như "user @ host: path". Lưu ý dấu hai chấm; nếu bạn sử dụng [email protected]:443/repo.git, Git nghĩ bạn đang cố gắng sao chép đường dẫn 443/repo.git từ [email protected]. Nếu bạn cần chỉ định một cổng, bạn phải sử dụng cú pháp kiểu ssh (như bạn đã làm).

+2

Hoặc sử dụng '.ssh/config' để chỉ định cổng. –

+0

Bạn có nghĩa là mỗi khách hàng phải chỉnh sửa '~/.ssh/config' của nó? Chúng ta không thể làm điều này phía máy chủ? –

Các vấn đề liên quan