2009-07-07 27 views
5

Tôi có một hộp Windows 2003 với thiết lập máy chủ ssh. Tôi có msysgit (git phiên bản 1.6.2) được cài đặt cả cục bộ lẫn trên máy chủ.Làm thế nào để dừng git qua ssh trên các cửa sổ để giải quyết đường dẫn sai?

Các máy chủ có đường dẫn sau tuyệt đối để Repos tôi:

e:\vc\git\myrepo.git 

khi người dùng đăng nhập anh/cô ấy sẽ được đưa vào thư mục làm việc sau:

e:\vc\git\ 

Khi chạy sau cmd trên máy dev của tôi:

git clone ssh://[email protected]/myrepo.git testrepo 

Tôi nhận được lỗi sau:

fatal: ''/myrepo.git'' does not appear to be a git repository 

Theo bản ghi ssh của tôi dường như git đang thực hiện cmd này trên máy chủ:

'cmd.exe /c git-upload-pack '/myrepo.git'' 

Thực thi lệnh đó tại địa phương (trên máy chủ) thất bại vì lý do tương tự. Tôi nghĩ rằng vấn đề có liên quan đến git tiền tố đường dẫn với một '/'. Làm thế nào để tôi nói git không làm điều này? Điều này có nên hoạt động không?

Lưu ý: git-upload-pack đang hoạt động vì tôi đã thêm \ gitinstallpath \ libexec \ git-core vào đường dẫn. Rõ ràng đây là một lỗi và sẽ được khắc phục trong tương lai, đây là công việc của tôi xung quanh.

+0

SSH gì máy chủ bạn có đang chạy trên máy chủ? Phần URL sau khi máy chủ @ user cần phải ở định dạng mà nó hiểu được. –

Trả lời

6

Tôi đã giải quyết vấn đề này bằng cách chuyển máy chủ ssh của mình từ winssh thành openssh (thông qua lớp cygwin). Tôi đã có thể kết nối tốt (như đã nói ở trên) bằng cách sử dụng winsshd, nhưng winsshd đã không được xử lý một cách chính xác đường dẫn bắt đầu bằng "/". Tôi có thể có thể nhận được winsshd để làm việc, nhưng chuyển sang Cygwin và openssh là nhanh hơn.

Dưới đây là một good blog post để kick bắt đầu cài đặt nếu bạn trong tình trạng tương tự:

+1

+1 cho bài đăng trên blog tuyệt vời về thiết lập máy chủ git + ssh trên cửa sổ. –

4

Bạn đã thử những điều sau đây chưa?

git clone ssh://[email protected]/myrepo testrepo 

Lưu ý xóa ".git" khỏi cuối đường dẫn SSH. Bạn chỉ cần hậu tố đó ở cuối nếu tên thư mục từ xa có nó.

Ngoài ra, bạn đã thử bất kỳ định dạng URL SSH nào khác chưa? Để sử dụng đường dẫn tương đối, bạn có thể thử:

git clone ssh://[email protected]/~/myrepo testrepo 

Xem chi tiết về các định dạng URL khác.

+0

1) thư mục không có .git. Xin lỗi vì lỗi đánh máy, đã sửa trong câu hỏi. 2) kết quả trong lỗi: fatal: '' ~/myrepo.git '' dường như không phải là kho git –

+0

Tôi cũng đã thử: ssh: // myuser @ myip: myrepo.git nhưng ssh than phiền về cổng và không thể kết nối. –

3

Nếu ai đó vẫn quan tâm đến cách giải quyết:

Vấn đề là - cmd.exe không hiểu các thông số đơn trích dẫn. Vì vậy, chúng tôi sử dụng sh thay thế.

Tạo tập tin gup.sh với dòng

 
    git-upload-pack.exe $* 

và grp.sh với

 
    git-receive-pack.exe $* 

trên máy chủ!

Sau đó chạy:

 
    git clone -u 'sh gup.sh' ssh://[email protected]/e/vc/git/myrepo.git testrepo 
    git config remote.origin.uploadpack 'sh gup.sh' 
    git config remote.origin.receivepack 'sh grp.sh' 
Các vấn đề liên quan