繁体   English   中英

如何使用EGIT读取公共git存储库中的所有提交?

[英]How to read all the commits of a public git repository using EGIT?

我正在使用EGit API读取远程存储库。 我的用例是读取任何公共git存储库的所有提交。 EGit是否可能?

以下是我读取所有存储库的代码:

GitHubClient client = new GitHubClient();
    client.setCredentials("xxx.xx.xx@gmail.com", "********");

    RepositoryService service = new RepositoryService(client);

    List<Repository> repositories = service.getRepositories();

    for (int i = 0; i < repositories.size(); i++)
    {
        Repository get = repositories.get(i);
        System.out.println("Repository Name: " + get.getName());
    }

要读取提交,我使用以下代码:

CommitService commitService = new CommitService(client);
    for (RepositoryCommit commit : commitService.getCommits(repository)) {
        System.out.println(commit.getCommit().getMessage());
    }

这仅列出了属于我的存储库。 但是,假设我想从公共仓库(例如https://github.com/eclipse/jgit)中读取所有提交

EGit是否可能?

EGit是Eclipse的Git集成。 要以编程方式访问Git存储库,请使用JGit。 您的代码段引用了EGit还提供的GitHub API,以检查托管在GitHub上的存储库。

要访问任意Git信息库的历史记录(不仅是GitHub上的信息),您需要首先对其进行克隆。 例如:

Git.cloneRepository()
  .setURI( "https://github.com/eclipse/jgit.git" )
  .setDirectory( "path/to/local/repo" )
  .call();

可以在以下位置找到有关如何使用JGit克隆存储库的详细说明: http : //www.codeaffine.com/2015/11/30/jgit-clone-repository/

现在,您可以使用LogCommand列出本地存储库的提交。 请参见此处的示例: 使用JGit从Git检索提交消息日志

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM