如何在现有存储库上使用 JGit 从源中提取

Dee*_*thi 3 java git jgit

我需要一段可以pull来自原点和merge本地存储库的代码。我尝试使用可以获取最后一次提交和修订的本地存储库。但是无法pull从原点进行更改。

File gitWorkDir = new File(gitDir);
Git git = Git.open(gitWorkDir);
Repository repo = git.getRepository();
UsernamePasswordCredentialsProvider user = new 
UsernamePasswordCredentialsProvider("username", "password");
PullCommand pullCmd = git.pull();
pullCmd.setCredentialsProvider(user);
pullCmd.call();
ObjectId lastCommitId = repo.resolve(Constants.HEAD);
log.info(lastCommitId);
Run Code Online (Sandbox Code Playgroud)

gitDir我的本地存储库目录在哪里。

Min*_*ang 5

您需要提供远程存储库名称和远程分支名称。例如originmaster

PullResult result = git.pull()
    .setCredentialsProvider(user)
    .setRemote("origin")
    .setRemoteBranchName("master")
    .call();

if (result.isSuccessful()) {
  ...
} else {
  ...
}
Run Code Online (Sandbox Code Playgroud)

还要注意pull命令返回的结果是PullRequest--它的方法isSuccessful()表示pull是否成功。您可能还想在代码中添加此逻辑。

参考: