首页 > 解决方案 > JGit 将 Repo A 合并到分叉版本的 repo B 中,其中 A 在 B 之前

问题描述

final Git repoAgit = Git.cloneRepository()
            .setURI(repoAgitUrl)
            .setDirectory(new File(repoApath))
            .setBranchesToClone(Arrays.asList("refs/heads/develop"))
            .setBranch("refs/heads/develop")
            .setTransportConfigCallback(TRANSPORT_CONFIG_CALLBACK)
            .call();
final Git repoBgit = Git.cloneRepository()
            .setURI(repoBgitUrl)
            .setDirectory(new File(repoBpath))
            .setBranchesToClone(Arrays.asList("refs/heads/develop"))
            .setBranch("refs/heads/develop")
            .setTransportConfigCallback(TRANSPORT_CONFIG_CALLBACK)
            .call();

我如何合并repoArepoBrepoA应该在哪里repoB,并且repoB是一个分叉版本repoA

标签: javagitgithubegitjgit

解决方案


首先,在 中repoB,创建一个引用repoA.

然后从此远程获取,以便有两个本地分支:refs/heads/developrefs/remotes/repoa/develop.

如果尚未完成,请检查refs/heads/developrepoB 中的目标分支。

调用MergeCommand将远程跟踪分支合并到 HEAD。

例如:

repoB.remoteAdd().setName("repoa").setUri(new URIish("/path/to/repoA")).call();
repoB.fetch().setRemote("repoa").call();
MergeResult mergeResult = repoB.merge()
    .include(repoB.getRepository().resolve("refs/remotes/repoa/develop"))
    .call();

推荐阅读