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

标签 java jgit

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

它是选项-u--set-upstream 进入push command .

我在 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 类中定义。

关于java - JGit - 推送分支并添加上游(-u 选项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27823940/

相关文章:

java - 使用 EditText 更新 TextView 的值

.net - NGIT/JGIT/Git# 带有私钥的 SSH session 克隆 Git 存储库

git - JGit HTTPS 克隆不起作用

git - Jenkins git 客户端 : how to move to jgit on windows

java - 如何使用jgit将现有存储库克隆到新的github实例?

java - 传递具有不同起始索引的数组作为参数

java - 如何在不为每个资源定义默认处理程序的情况下覆盖所有 404 页面?

java - 函数 isAssignableFrom 在服务器启动期间返回 false

java - 如何在 JGit 中使用内存数据库执行 git pull?

java - 特定时区日历中的日期 getTime()