如何将特定分支镜像到另一个存储库中的分支?

时间:2016-12-25 15:40:36

标签: git github

我想只将“旧存储库”中的主分支镜像到分支“X”中 “新的存储库”。我该怎么做呢? [要清楚我不想反映整个回购或其他分支]

一旦我反映了这一点,在某些时候我会想要“X”并将所有新的变化合并到“新存储库”的“主”中。我知道我可以做拉动请求,但我如何通过终端做到这一点?

感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

您可以将旧存储库添加为git remote add <name> <url>的远程存储库,然后使用git fetch <name> <branch> ...获取一个或多个分支。然后,您可以像任何其他远程分支一样使用它,并使用git merge <name>/<branch>正常合并您的分支。

我建议反对它,除非在某些情况下,例如一个包含大量文件的大型分支(使用git-lfs会受益)。这是你不需要的额外复杂性。

由于Git的工作原理,大多数分支机构将共享大部分存储库。获取一个开放分支后,获取其他分支的成本很低。例如......

                                       Q - R - S [branch2]
                                      /
A - B - F ------ G - H - I - J - K - O - P [master]
     \          /                 \
      C - D - E                    L - M - N [branch1]

如果你git fetch old branch1你将会提交N,M,L,K,J,I和其他所有内容,一直回到A.如果你然后git fetch old branch2它只会获取Q ,R和S.因此,除非您的存储库结构奇怪,否则在第一个存储库之后以非常低的成本获取分支。不妨 catch 获取所有内容并使整个过程更简单。