2012-04-25 86 views
7

我通過Google,論壇和JGit用戶指南進行搜索,但無法找到如何使用API​​連接到遠程存儲庫。 任何人都有一個例子或只是一個想法如何做到這一點?JGit:連接到遠程存儲庫

感謝您的幫助。

回答

5

目前,JGit 2.0.0快照複製只提供

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

具體Repository類,這意味着自org.eclipse.jgit.api.Git需要Repository,這是不可能的遠程工作。由於Git本身並不是按照我認爲你的意思進行遠程操作,我懷疑我們很快就會看到這樣的功能。

更多介紹:

因此,您需要在本地克隆。你這樣做,通過發出

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

然而,對於Git的一致性的考慮,您應該只克隆一個純倉庫,在一個偏遠的位置,這樣的非純倉庫,而不是技術上的,幾乎是人跡罕至。

+0

嗨,謝謝你的回答盧卡。所以最好的方法是使用CloneCommand clone = Git.cloneRepository()來獲取項目ID的最後一個版本,以將其克隆到新的本地目錄中;「我是對的嗎?部分地爲 – Brice 2012-04-25 15:32:21

+0

。正如我上面所說的,如果你在某個地方有一個非裸倉庫,那麼對它進行處理實際上是不可行的,因爲你不應該克隆它。 – 2012-04-25 15:40:41

0

我不確定我是否理解這個問題,因爲Git是用來訪問其他存儲庫的,這就是「Git is distributed」的含義。

如果你想連接到一個遙遠的倉庫,那麼你應該克隆它。

我不知道這是你在找什麼,但你也可以使用多個遙控器。使用Git使用git remote add <remote_name> <remote_uri>來添加一個。至於Jgit,不幸的是我不記得簡單的代碼,但你可以弄清楚。

至少可以通過修改配置,從存儲庫對象調用getConfig(),然後調用setString(...) - 不要忘記最後保存配置。但在修改配置之前,我認爲你應該先了解更多關於Git和JGit的知識。

我建議您閱讀更多關於它的信息,並與您的存儲庫一起玩。看看這篇文章:http://caiustheory.com/adding-a-remote-to-existing-git-repo。 另一個將幫助你的道路是How do I do the equivalent of 「git remote update」 with jgit?

也許別人知道究竟哪些命令運行,可以幫助。