JGit 如何检查一个分支是否被检出

10

我正在使用JGit进行一个项目的开发。我已经成功删除了一个分支,但我还想检查一下是否有这个分支被检出。我在CheckoutCommand中找到了一个变量,但它是私有的:

private boolean isCheckoutIndex() {
    return startCommit == null && startPoint == null;
}

我希望能够获得特定的公共方法返回值。当我在检出的分支上使用下面的命令时它会返回一个错误,提示无法删除该分支,因此我想先检查一下它是否被检出。

git.branchDelete().setForce(true).setBranchNames(branchName).call();
1个回答

17

Repository::getFullBranch() 返回当前检出分支的完整名称(例如 refs/heads/main),如果有的话。否则,将返回 HEAD 提交的 ID 或 null,如果没有提交。


运行良好!我还有一个问题。当按下修改按钮时,如何获取提交消息? - marius9228
请参考这个问题来使用Repository#resolve()RevWalk获取引用的提交ID。请注意,在使用revWalk.dispose()后,您应该处理掉RevWalk - Rüdiger Herrmann
一个有关如何获取特定提交的提交消息的示例现在在 jgit-cookbook 上可用,网址为 https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/api/GetCommitMessage.java - centic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接