如何在现有存储库上使用JGit从原点拉出

时间:2018-06-14 06:52:08

标签: 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);

其中gitDir是我的本地存储库目录。

1 个答案:

答案 0 :(得分:1)

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

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

if (result.isSuccessful()) {
  ...
} else {
  ...
}

另请注意,pull命令返回的结果为PullRequest - 其方法isSuccessful()表示拉取是否成功。您可能也想在代码中添加此逻辑。

参考文献: