JGit:连接到远程存储库

时间:2012-04-25 08:16:19

标签: remote-access jgit

我搜索了Google,论坛和JGit用户指南,但无法找到如何使用API​​连接到远程存储库。 任何人都有一个例子,或只是一个如何做到这一点的想法?

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

目前,JGit 2.0.0-SNAPSHOT仅提供

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一致性的原因,您应该只克隆一个裸存储库,因此远程位置的非裸存储库虽然在技术上不实际,但几乎无法访问。

答案 1 :(得分:0)

我不确定我是否理解这个问题,因为Git是为访问其他存储库而设计的,这就是“Git is distributed”的含义。

如果你想连接到一个远程存储库,那么你应该克隆它。

我不知道你是否正在寻找,但你也可以使用多个遥控器。使用git remote add <remote_name> <remote_uri>使用Git添加一个。至于Jgit,遗憾的是我不记得简单的代码,但你可以解决这个问题。

至少可以通过修改配置,从Repository对象调用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?

也许其他人确切地知道要运行哪些命令并且可以提供帮助。