如何使用JGit确定哪些分支已合并为主分支?
我想做相当于普通的git命令:
git branch -a --merged
这在JGit中是否可行?
答案 0 :(得分:5)
RevWalk::isMergedInto()
可用于确定提交是否已合并到另一个提交中。也就是说,如果第一个参数中给出的提交是第二个给定提交的祖先,则isMergedInto
返回true。
try( RevWalk revWalk = new RevWalk( repository ) ) {
RevCommit masterHead = revWalk.parseCommit( repository.resolve( "refs/heads/master" );
RevCommit otherHead = revWalk.parseCommit( repository.resolve( "refs/heads/other-branch" );
if( revWalk.isMergedInto( otherHead, masterHead ) ) {
...
}
}
要获取所有分支的列表,请使用ListBranchesCommand
:
List<Ref> branches = Git.wrap( repository ).listBranches().setListMode( ListMode.ALL ).call();