有没有办法使用JGit确定一个分支是远程分支还是本地分支(或两者都是)?我有:
Map<String, Ref> allRefs = git.getRepository().getAllRefs();
Collection<Ref> values = allRefs.values();
for (Ref ref : values) {
refs.add(ref.getName());
}
它给出:
HEAD
refs/heads/tmp01
refs/heads/master
refs/heads/newFeatureBranch
refs/heads/sampleBranch
refs/remotes/origin/master
refs/remotes/origin/newFeatureBranch
因此,newFeatureBranch既是本地分支,也是远程分支。目前我检查ref.getName()是否包含“remotes/origin”。但是,有没有更好的方法来确定分支是远程的还是本地的?
一个选项是列出所有远程分支,并检查您感兴趣的分支是否在此列表中:
List<Ref> remoteBranches = git.branchList().setListMode(ListMode.REMOTE).call()
您可以在JGit的BronchORDTest单元测试中找到更多branchList()
的示例。
另一个选项是仅从存储库获取远程引用:
Map<String, Ref> refList = repo.getRefDatabase().getRefs(Constants.R_REMOTES);
请参阅ListBranchCommand中的更多内容。
在git中,所有分支都是本地分支。它们都生活在的本地存储库中。git/refs
和都只是指向本地提交的指针。
你所说的“远程分支”只是由git fetch
创建的本地分支。
如何调用这些“远程分支”由git config remote决定。起源fetch,它通常会简单地告诉git fetch
创建一个名为refs/remotes/origin/*
的ref。
因此,检查ref名称的前缀正是正确的方法。
术语“本地分支”通常指REF/heads中的REF
术语“远程分支”通常指REF/remotes中的REF。
要仅列出您使用的本地分支:git branch
或git。branchList()。call()
要仅列出您使用的远程分支:git branch-r
或git。branchList()。setListMode(ListMode.REMOTE)。call()
要同时列出本地和远程分支,请使用:git branch-a
或git。branchList()。setListMode(ListMode.All)。call()
ListBranchCommand中相应的代码。java阅读:
if (listMode == null) {
refList = repo.getRefDatabase().getRefs(Constants.R_HEADS);
} else if (listMode == ListMode.REMOTE) {
refList = repo.getRefDatabase().getRefs(Constants.R_REMOTES);
} else {
refList = new HashMap<String,Ref>(repo.getRefDatabase().getRefs(
Constants.R_HEADS));
refList.putAll(repo.getRefDatabase().getRefs(
Constants.R_REMOTES));
}
我需要确定消息的发送者是Akka集群中的本地行为者还是远程行为者之一。目前我找到的唯一方法是 在每个节点上,路由器管理许多参与者来完成工作。工作参与者将结果发送回本地主参与者,并通过发件人引用分配新的职务。主参与者还定期向其他节点的主参与者发送结果,确保数据在不同节点的主参与者之间随机“混合”。在数据来自远程参与者的情况下,接收主机不应试图分配新的工作。它本质上是一个带有混合的岛屿方法的实现。
问题内容: 这与另一个用户先前提出的问题有关,该问题询问如何在EclipseIDE中检测代码是否正在运行。 我注意到Eclipse总是使用而不是来启动程序。(这并不意味着启动的程序是从Eclipse启动的)。 我可以找到使用传递的参数 但这并不能告诉我它是使用还是启动的。 有没有办法找出它是使用还是启动的? 为什么Eclipse用于启动程序? 问题答案: System.console()将返回,因
问题内容: 有没有办法找出采用varargs的Java函数(或构造函数)是否实际上是用varargs或数组调用的? 说我有以下几点: 构造函数可以用单个参数调用,以后可以更改,如果我不复制构造函数中的数组,这些更改也将应用于成员变量,对吗?但是,如果用几个s 调用构造函数,则没有其他对array *的引用可以在类之外稍后对其进行更改,因此我可以直接对其进行分配。我可以告诉构造函数(或通常带有var
问题内容: 我将从服务器接收JSON对象或数组,但是我不知道它将是什么。我需要使用JSON,但是要这样做,我需要知道它是对象还是数组。 我正在使用Android。 有没有人有这样做的好方法? 问题答案: 我找到了更好的方法来确定: tokenizer可以返回更多类型:http : //developer.android.com/reference/org/json/JSONTokener.html
在你明确地决定将一个本地分支发布到远程仓库之前,这些在你本地计算机上创建的分支是不能被其他的团队成员看到的,它只是你的私有分支。这就意味着,你可以保留某些改动仅仅在你私有的本地分支上,而与其他团队成员分享一些其它分支上的改动。 现在让我们来分享 “contact-form” 分支(它直到现在还仅仅是个私有的本地分支)到 “origin” 远程上: $ git checkout contact-fo
现在我们得到了一个干净的工作副本,第一件事就是要切换到,或者说 “签出(check out)” 那个新建的分支上去: $ git checkout contact-form 概念 签出(Checkout),HEAD,和你的工作副本(Working Copy) 分支会自动指向最后一次的提交。而且,一个提交也对应项目中的一个特定版本,Git 总是非常地清楚定位哪些文件属于该分行。 在这个时间点,仅仅