从 Jgit 中的远程分支中拉取自证书错误

Pull from a remote branch in Jgit with self certificate errors

我正在使用的脚本中有以下代码 运行。

 Git git = Git.open(repoLocation);
 Repository repo = git.getRepository();
 git.checkout()
    .setName("feature/test")
    .setStartPoint("remotes/origin/feature/test")
    .call();
 git.pull()
    .setRebase(true)
    .call();

但是,我无法从名为 "test" 的远程功能分支中提取数据。我如何通过 Jgit 从这个远程分支中拉取数据?

通过我的调试器后,我决定尝试在本地手动拉取。输入

git pull

在我的 bash 终端中,出现以下错误:

fatal: unable to access 'https://username@myCompany.com/path/to/repo.git/': SSL certificate problem: self signed certificate in certificate chain

我现在认为这是错误的根源。我如何在保持安全的同时在本地拉回回购更改(代码在分发给其他人的小程序中运行——大多数在线答案都说禁用 SSL 验证,但我认为这行不通).

这个tech blog给出了以下关于如何在Jgit中处理分支的例子:

// Create a new branch
git.branchCreate().setName("newBranch").call();
// Checkout the new branch
git.checkout().setName("newBranch").call();
// List the existing branches
List<Ref> listRefsBranches = git.branchList().setListMode(ListMode.ALL).call();
for (Ref refBranch : listRefsBranches) {
System.out.println("Branch : " + refBranch.getName());
}
// Go back on "master" branch and remove the created one
git.checkout().setName("master");
git.branchDelete().setBranchNames("newBranch");

尝试执行 git.fetch().setRemote("origin").call();,然后执行 git.checkout().setName("newBranch").call();,然后再执行 git pull,应该可以。

我的解决方案是在克隆存储库时使用 RSA 身份验证。它解决了我的问题。我按照 this article 了解如何使用 RSA 身份验证,然后从那里调整了我需要的内容。

请注意,我确实使用了不同的 URL 来克隆存储库。而不是使用

https://username@myCompany.com/path/to/repo.git/

我用过:

ssh://git@My.Company.Com/PATH/repo.git