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时,它没有显示跟踪的分支…感谢你完美的回答。