Java JGit-推送分支并向上游添加(-u选项)

Java JGit-推送分支并向上游添加(-u选项),java,jgit,Java,Jgit,在JGit中,我搜索了一种推送分支并添加上游引用(跟踪)的方法 它是将选项-u或-设置为上游插入到 我在类PushCommand中没有看到允许这样做的方法 拜托,你能告诉我怎么做吗 PushCommand pushCommand = git.push() .setRemote(remoteAlias) .setRefSpecs(spec); JGitPushCommand尚未提供此功能,但您可以修改存储库配置,如-

JGit
中,我搜索了一种推送分支并添加上游引用(跟踪)的方法

它是将选项
-u
-设置为上游
插入到

我在类
PushCommand
中没有看到允许这样做的方法

拜托,你能告诉我怎么做吗

PushCommand pushCommand = git.push()
                    .setRemote(remoteAlias)
                    .setRefSpecs(spec);

JGit
PushCommand
尚未提供此功能,但您可以修改存储库配置,如
--set upstream
所示

如果将远程别名传递给
setRemote()
(如问题中的代码片段所示),则需要如下设置上游别名:

StoredConfig config = git.getRepository().getConfig();
config.setString(CONFIG_BRANCH_SECTION, "local-branch", "remote", "remote-alias-name");
config.setString(CONFIG_BRANCH_SECTION, "local-branch", "merge", "refs/heads/name-of-branch-on-remote");
config.save();
这将导致此配置部分

[branch "local-branch"] 
remote = remote-alias-name 
merge = refs/heads/name-of-branch-on-remote
如果远程设备尚未配置(即没有节
[remote“remote alias name”]
),则还必须创建此类节。例如:

config.setString(CONFIG_REMOTE_SECTION, "remote-alias-name", "url", "url-of-remote");
config.setString(CONFIG_REMOTE_SECTION, "remote-alias-name", "fetch", "ref-spec");

常量是在类
ConfigConstants

中定义的,谢谢。我现在可以在不指定远程分支的情况下执行提取。但是我不明白为什么在执行git分支-vv时没有跟踪分支的信息。你知道为什么吗?可能是因为跟踪信息存储在gitconfig fi中le.如果使用
CreateBranchCommand
创建分支,且起点使分支凹陷,则可以指定新分支是否应通过
setUpstreamMode()跟踪起点
。这回答了你的问题吗?终于没问题了,这是我的错!当我配置了我的遥控器时,我忘了调用remoteConfig.addFetchRefSpec,这就是为什么当我调用git branch-vv时,它没有显示跟踪的分支…感谢你完美的回答。