【发布时间】:2014-12-26 00:24:55
【问题描述】:
如何使用JGit判断哪些分支已经合并到master?
我想做与普通git命令等效的操作:
git branch -a --merged
这在 JGit 中可行吗?
【问题讨论】:
标签: jgit
如何使用JGit判断哪些分支已经合并到master?
我想做与普通git命令等效的操作:
git branch -a --merged
这在 JGit 中可行吗?
【问题讨论】:
标签: jgit
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();
【讨论】:
LsRemoteCommand,您可以检索远程存储库上可用的所有引用。
LsRemoteCommand 有任何疑问,请在单独的帖子中提问。