[英]Iterate through all branches
我想使用JGit獲得特定分支的所有提交。
讓我們以test-kitchen為例。 它有5個分支:
例如,如何僅通過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.