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

asc*_*ott 10 java jgit

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

它是期权-u--set-upstream推命令.

我没有在课堂上看到PushCommand允许这样做的方法.

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

PushCommand pushCommand = git.push()
                    .setRemote(remoteAlias)
                    .setRefSpecs(spec);
Run Code Online (Sandbox Code Playgroud)

Rüd*_*ann 8

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();
Run Code Online (Sandbox Code Playgroud)

这将导致此配置部分

[branch "local-branch"] 
remote = remote-alias-name 
merge = refs/heads/name-of-branch-on-remote
Run Code Online (Sandbox Code Playgroud)

如果尚未配置遥控器(即没有部分[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" );
Run Code Online (Sandbox Code Playgroud)

常量在类中定义ConfigConstants.