使用 jgit 的 Java git 客户端

Posted

技术标签:

【中文标题】使用 jgit 的 Java git 客户端【英文标题】:Java git client using jgit 【发布时间】:2011-12-18 13:47:54 【问题描述】:

我在使用 java 编写的 git 客户端时遇到了一些困难。我正在使用 jGit 库通过 git 服务器上的 ssh 进行连接。问题是我不知道如何指定私钥的路径和密码。我在 jGit 文档中找不到任何关于我需要调用哪些函数的示例。从我读到的 jGit 库正在使用 JSch 使用 ssh 连接到服务器,而 JSch 支持私钥和密码短语。有没有人有这方面的经验或有一些工作代码?

谢谢

【问题讨论】:

【参考方案1】:

我从未使用过 jGit,但是通过查看 Javadocs(似乎无法在线浏览,but can be downloaded),您需要配置 SshSessionFactory(即创建 JSchConfigSessionFactory 的子类,并覆盖其 configure 方法)。

JSch 对象通过其addIdentity 方法支持私钥,并且可以将密码短语与UserInfo 对象一起提供给每个单独的JSch Session。

(免责声明:JSch Javadoc 是我编写的。)

【讨论】:

你是个天才!非常感谢它就像一个魅力。 @azertys 如果你能分享更多信息,它是如何为你工作的,那将会很有帮助。我仍在努力实现这一目标。我收到错误:com.jcraft.jsch.JSchException: Auth 在 org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:117) 的 com.jcraft.jsch.Session.connect(Session.java:519) 失败 我知道它已经接近 6 年了,但任何帮助都会很棒。 对不起,我没有我的应用程序的代码了,但如果你可以在这里发布一些非工作代码,也许我或这里的其他人可以帮助你。

以上是关于使用 jgit 的 Java git 客户端的主要内容,如果未能解决你的问题,请参考以下文章

JAVA 使用jgit管理git仓库

git学习之jgit

如何使用 JGit 进行 git push?

JGit Java Git 库取消暂存文件

java操作git简单实现

如何使用 JGit 获取提交的文件列表