2012-04-25 32 views
7

Tôi đã tìm kiếm thông qua Google, diễn đàn và hướng dẫn sử dụng JGit nhưng không thể tìm thấy cách kết nối với kho lưu trữ ở xa bằng API. Bất cứ ai cũng có một ví dụ hoặc chỉ là một ý tưởng về cách làm điều đó?JGit: kết nối với kho lưu trữ xa

Cảm ơn sự giúp đỡ của bạn.

Trả lời

5

Hiện nay, JGit 2.0.0-SNAPSHOT không chỉ cung cấp

org.eclipse.jgit.storage.file.FileRepository 
org.eclipse.jgit.storage.dfs.InMemoryRepository 

bê tông Repository lớp, có nghĩa là kể từ org.eclipse.jgit.api.Git mất một Repository, nó không phải là có thể làm việc từ xa. Vì bản thân Git không được thiết kế để hoạt động từ xa theo cách tôi nghĩ bạn có ý nghĩa, tôi nghi ngờ chúng ta sẽ sớm thấy một tính năng như vậy.

THÊM VỀ RẰNG:

Do đó, bạn sẽ cần phải sao chép địa phương. Bạn làm điều đó bằng cách phát hành

Git.cloneRepository() 
     .setURI(myRemoteURIString) 
     .setDirectory(new File(myLocalPathString)) 
     .call(); 

Tuy nhiên, vì những lý do nhất quán trong Git bạn nên sao chép chỉ một kho lưu trữ trần, do đó, một kho lưu trữ phi trần tại một địa điểm từ xa, trong khi không về mặt kỹ thuật, là thực tế không thể tiếp cận.

+0

Xin chào và cảm ơn câu trả lời của bạn Luca. Vì vậy, cách tốt nhất để lấy phiên bản cuối cùng của một id dự án để sao chép nó trong một thư mục cục bộ mới bằng cách sử dụng 'CloneCommand clone = Git.cloneRepository(); 'Tôi có đúng không? – Brice

+0

Một phần. Như tôi đã nói ở trên, nếu bạn có một kho lưu trữ không phải là một nơi nào đó, nó thực tế là không khả thi để làm việc trên nó, vì bạn không nên sao chép nó. –

0

Tôi không chắc chắn tôi hiểu câu hỏi vì Git được tạo để truy cập vào các kho lưu trữ khác, đây là ý nghĩa của "Git được phân phối".

Nếu bạn muốn kết nối với ONE kho lưu trữ ở xa, thì bạn nên sao chép nó.

Tôi không biết nếu đó là những gì bạn đang tìm kiếm, nhưng bạn cũng có thể sử dụng nhiều điều khiển từ xa. Thêm một cái nữa được thực hiện bằng Git sử dụng git remote add <remote_name> <remote_uri>. Đối với Jgit, tôi tiếc là không thể nhớ mã để làm điều đó một cách đơn giản, nhưng bạn có thể tìm ra điều này.

Ít nhất có thể bằng cách sửa đổi cấu hình, gọi getConfig() từ đối tượng Kho lưu trữ và sau đó gọi setString(...) trên đó - đừng quên lưu cấu hình cuối cùng. Nhưng trước khi sửa đổi cấu hình, tôi nghĩ bạn nên tìm hiểu thêm về Git và JGit.

Tôi khuyên bạn nên đọc thêm về nó và chơi một chút với kho lưu trữ của bạn. Hãy xem bài viết này: http://caiustheory.com/adding-a-remote-to-existing-git-repo. Một số khác sẽ giúp bạn xuống đường là How do I do the equivalent of “git remote update” with jgit?

Có thể ai đó biết chính xác các lệnh nào để chạy và có thể trợ giúp.

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