Java 如何更改Git(jgit)的URI
我正在开发一个Eclipse插件,用户可以通过该插件登录并使用一些git存储库(通过ssh和用户/密码凭据),这些存储库可以在后台访问。用户不知道他们的ssh密码 这些用户对git存储库具有只读访问权限。当其中一个用户第一次登录到计算机时,git被拉到本地计算机上。到目前为止没有问题。当用户注销时,为了提高效率,我希望将此本地副本保留在此计算机上。我的问题就从这一点开始 当另一个用户登录时,我从本地副本检索git对象,不幸的是(对我来说),它包含为第一个用户设置的URI 有没有办法设置org.eclipse.jgit.api.Git对象的URI 我尝试了以下代码,但没有成功。设置URI thii way会抛出org.eclipse.jgit.api.errors.InvalidConfigurationException:没有键远程的值 此代码(不设置URI)对同一用户的效果与预期相同。并从远程更新本地副本Java 如何更改Git(jgit)的URI,java,eclipse,git,ssh,jgit,Java,Eclipse,Git,Ssh,Jgit,我正在开发一个Eclipse插件,用户可以通过该插件登录并使用一些git存储库(通过ssh和用户/密码凭据),这些存储库可以在后台访问。用户不知道他们的ssh密码 这些用户对git存储库具有只读访问权限。当其中一个用户第一次登录到计算机时,git被拉到本地计算机上。到目前为止没有问题。当用户注销时,为了提高效率,我希望将此本地副本保留在此计算机上。我的问题就从这一点开始 当另一个用户登录时,我从本地副本检索git对象,不幸的是(对我来说),它包含为第一个用户设置的URI 有没有办法设置org.e
Git git = Git.open(new File("PATH" + "/.git"));
git.pull()
.setTransportConfigCallback(new TransportConfigCallback() {
@Override
public void configure( Transport transport ) {
if( transport instanceof SshTransport ) {
SshTransport sshTransport = ( SshTransport )transport;
sshTransport.setSshSessionFactory(new JschConfigSessionFactory() {
@Override
protected void configure(Host hc, Session session) {
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword("password");
}
});
}
}
})
.setRemote(remoteURI)
.call();
你对Git了解多少?(不特别是EGit)@immibis一些。我遗漏了任何关键部分吗?好吧,Git存储库不仅仅有“URI”(假设您不是指主存储库副本的URI);它可以有多个“远程”。当我说URI时,我指的是ssh://@:/project.git格式的内容,然后你说我需要删除旧的URI并添加一个新的URI?顺便说一句,两个URI完全相同,只是part看起来好像没有“git remote”命令。