7

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

谢谢你的帮助。

4

2 回答 2

5

目前,JGit 2.0.0-SNAPSHOT 只提供

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

具体Repository类,这意味着由于org.eclipse.jgit.api.Git需要 a Repository,因此无法远程工作。由于 Git 本身并没有像我想的那样设计为远程操作,我怀疑我们很快就会看到这样的功能。

更多信息:

因此,您将需要在本地克隆。你可以通过发出

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

但是,出于 Git 一致性的原因,您应该只克隆一个裸存储库,因此远程位置的非裸存储库虽然在技术上不是,但实际上是无法访问的。

于 2012-04-25T14:19:17.293 回答
0

我不确定我是否理解这个问题,因为 Git 是为访问其他存储库而设计的,这就是“Git 是分布式的”的意思。

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

我不知道这是否是您正在寻找的,但您也可以使用多个遥控器。再添加一个是使用 Git 使用git remote add <remote_name> <remote_uri>. 至于 Jgit,不幸的是我不记得简单的代码,但你可以弄清楚这一点。

至少可以通过修改配置,getConfig()从 Repository 对象调用然后调用setString(...)它 - 不要忘记最后保存配置。但在修改配置之前,我认为你应该先多了解一下 Git 和 JGit。

我建议您阅读有关它的更多信息,并在您的存储库中进行一些尝试。看看这篇文章:http ://caiustheory.com/adding-a-remote-to-existing-git-repo 。另一个可以帮助您的方法是如何使用 jgit 执行相当于“git 远程更新”的操作?

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

于 2012-05-20T20:20:53.317 回答