将一个Git存储库的所有分支导入另一个Git存储库

将一个Git存储库的所有分支导入另一个Git存储库,git,branch,Git,Branch,我有两个git存储库。两者都有一个主分支,手动与同一CVS存储库的不同分支保持同步,还有相当数量的功能分支 比如说 Git旧存储库: 主(手动跟踪CVS分支旧版本) 功能abc后端口 特征xyz 当前Git存储库: master(手动跟踪CVS存储库的负责人) 专题abc 功能-123 现在,我想将所有分支从旧分支导入当前分支,并添加一些前缀(例如旧主分支、旧功能abc后端口、旧功能xyz)。这可能吗?导入分支是可能的。 一旦导入,管理它可能更加棘手 进口: cd current g

我有两个git存储库。两者都有一个主分支,手动与同一CVS存储库的不同分支保持同步,还有相当数量的功能分支

比如说

  • Git旧存储库:
    • 主(手动跟踪CVS分支旧版本)
    • 功能abc后端口
    • 特征xyz
  • 当前Git存储库:
    • master(手动跟踪CVS存储库的负责人)
    • 专题abc
    • 功能-123

现在,我想将所有分支从旧分支导入当前分支,并添加一些前缀(例如旧主分支、旧功能abc后端口、旧功能xyz)。这可能吗?

导入分支是可能的。
一旦导入,管理它可能更加棘手

进口:

cd current
git remote add old /url/to/git/old
git fetch old
git branch --track old_master old/master
git branch --track old_feature-abc-backport old/feature-abc-backport
git branch --track old_feature-xyz old/feature-xyz
管理:

问题是:git“旧”回购协议的提交与git“当前”回购协议的提交相同吗?
如果是,那么您可以将
旧分支合并到
当前分支中,因为增量会受到限制



实际上,我希望导入主要是为了存档,至少在第一步。当分支机构停止维护时

那么,简单的获取就足够了:

old中的所有分支将立即被引用为
old/abranch
:无需创建带有“old_uu”前缀的本地分支。

它们的完整历史记录将在您当前的回购中提供(提取后),每个
旧分支
都将由
参考/remotes/old/abranch
中的(由提取创建)引用。实际上,我希望导入主要是出于存档目的,至少在第一步。当一个分支机构停止维护时,我就再也不用对它进行维护了。我们的想法是扔掉旧的Git存储库。所以我只想“复制”这些分支,以后不必再拉动它们。我不想像你建议的那样,在每个分行打一行。有没有办法没有它?我希望在不久的将来,我们将完全转向Git,这将使我的整个工作流程变得更加简单……关于你的问题:不,他们不是。必要时,我会不时从CVS更新相应回购的主分支,分别针对每个Git存储库。无论如何,内容都(略有)不同,因为Git存储库跟踪同一CVS存储库的不同分支。然而,我认为它们非常相似,因此将它们放在一个Git存储库中可以节省相当多的空间。@JensMüller那么
Git fetch
步骤就足够了。我已经编辑了我的答案来回应你的评论。如果没有,那么
old
的提交与
current
的提交不同?太棒了。我的问题被这个标记为重复+1.谢谢