报错

could not be established because of SSL problems

命令行方式拉取报错

直接通过命令行进行代码拉取时,可以用下边的方法:

git config --global http.sslVerify false

查看设置是否成功

git config --global  --list

JGit api方式拉取报错

如果我们使用的是JGit api,想通过api本身启用它,可以用下边的方法:

直接修改jgit拉取代码方式,我们首先在其中初始化存储库,然后更改其sslVerify设置。
注意:始终首选按仓库,按服务器sslVerify忽略;全局设置标志是一个安全问题。将该URL替换为您要连接到的服务器的特定“基本” URL。

Repositoryrepo = Git.init().setDirectory(this.tempGitDir.toFile()).call();
repo.getRepository()
        .getConfig()
        .setBoolean("http", "https://selfsigned.server.com", "sslVerify", false);
URIish u = createURIish();
repo.remoteAdd()
        .setName("origin")
        .setUri(u)
        .call();
repo.pull()
        .setCredentialsProvider(new UsernamePasswordCredentialsProvider("token", pat))
        .setRemote("origin")
        .setRemoteBranchName("master")
        .call(); 

createURIish方法仅使用远程URI创建一个新的URIish对象,我使用另一种方法来降低复杂性(嵌套尝试):

private URIish createURIish() throws InvalidRemoteException {
    URIish u = null;
    try {
        u = new URIish(this.gitUrl);
    } catch (URISyntaxException e) {
        throw new InvalidRemoteException(
                MessageFormat.format(JGitText.get().invalidURL, this.gitUrl), e);
    }
    return u;
}

然后将URIish添加为新的远程服务器,最后调用pull命令。为此,我使用了UsernamePasswordCredentialsProvider,以便可以传递所连接的TFS服务器使用的PAT,但是您使用的username:pasword也应该可以使用。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐