Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改Git(jgit)的URI_Java_Eclipse_Git_Ssh_Jgit - Fatal编程技术网

Java 如何更改Git(jgit)的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

我正在开发一个Eclipse插件,用户可以通过该插件登录并使用一些git存储库(通过ssh和用户/密码凭据),这些存储库可以在后台访问。用户不知道他们的ssh密码

这些用户对git存储库具有只读访问权限。当其中一个用户第一次登录到计算机时,git被拉到本地计算机上。到目前为止没有问题。当用户注销时,为了提高效率,我希望将此本地副本保留在此计算机上。我的问题就从这一点开始

当另一个用户登录时,我从本地副本检索git对象,不幸的是(对我来说),它包含为第一个用户设置的URI

有没有办法设置org.eclipse.jgit.api.Git对象的URI

我尝试了以下代码,但没有成功。设置URI thii way会抛出org.eclipse.jgit.api.errors.InvalidConfigurationException:没有键远程的值

此代码(不设置URI)对同一用户的效果与预期相同。并从远程更新本地副本

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”命令。