簡體   English   中英

遍歷所有分支

[英]Iterate through all branches

我想使用JGit獲得特定分支的所有提交。
讓我們以test-kitchen為例。 它有5個分支:

  • 規格覆蓋
  • 舊版0.7
  • sethvargo / docs
  • sethvargo / full_chef_path

例如,如何僅通過spec-coverage進行迭代?

在此示例中,我將獲得所有可用的分支和提交。 但是我需要選擇我要從哪個分支提交。

提取:

// branch
for (Ref branch : git.branchList().setListMode(ListMode.REMOTE).call()){
    git.checkout().setName(branch.getName()).call();
    System.out.println("Branch: " + branch.getName());

    // commits
    Iterable<RevCommit> commits = git.log().all().call();
    for (RevCommit commit : commits) {
        System.out.println(commit);
        // doing something with the commits...
    }
}

根據您的描述,您嘗試執行等同於“ git log”的操作, jgit-cookbook有一個片段,顯示了如何像您一樣對所有提交進行迭代,但是在這種情況下,您可以選擇列出分支的所有提交通過僅對分支上的提交使用add()而不是all()迭代器:

    Iterable<RevCommit> logs = new Git(repository).log()
            .add(repository.resolve("remotes/origin/checkoutbranch"))
            .call();
    for (RevCommit rev : logs) {
        ...
    }

現在,我還更新了jgit-cookbook代碼段,以顯示在log()上使用all()的區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM