如何将多个git repos分支合并为单个repo分支?

时间:2019-11-29 06:25:23

标签: git gitlab repository

我想组织我的git repos,因为它们中有很多是高度相关的。现在,我想将所有它们合并(而不是合并)到具有多个分支的单个仓库中,并删除旧仓库。我该怎么办?

例如,我有分支A.master,A.branch1,B.master,C.master,C.branch2的仓库A,B和C。我想要的是创建一个新的仓库D,它的分支是D.master(有些新东西),A.master(需要更改名称),A.branch1,B.master(需要更改名称),C.master(有更改名称),C.branch2包含原始存储库中的所有提交历史记录。然后删除A,B和C,以使子模块无法使用。

2 个答案:

答案 0 :(得分:0)

假设您有仓库A,B和C,并创建了一个新仓库D。
假设您将检出要合并的正确分支
例如。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.17</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

然后将旧仓库的远程分支添加到新仓库

$> cd A
$> git checkout master

... 目前,我只是复制粘贴此答案Merge git repo into branch of another repo

答案 1 :(得分:0)

希望这会有所帮助。

您创建了一个名为D的新存储库。

  • 要在仓库A中运行的命令
result={"jazi": 1, "juge": 1, "juha": 9, "lebe": 4}
result2={"jazi": 3, "juge": 4, "juha": 1, "lebe": 4, "aba":7, "meze":9}

set_1 = set((k, v) for k, v in result.items())
set_2 = set((k, v) for k, v in result2.items())

print(f"not equals: {sorted(list(set1 ^ set2))}")
# not equals: [('aba', 7), ('jazi', 1), ('jazi', 3), ('juge', 1), ('juge', 4), ('juha', 1), ('juha', 9), ('meze', 9)]
print(f"only in first: {sorted(list(set_1 - set_2))}")
# only in first: [('jazi', 1), ('juge', 1), ('juha', 9)]
print(f"only in second: {sorted(list(set_2 - set_1))}")
# only in second: [('aba', 7), ('jazi', 3), ('juge', 4), ('juha', 1), ('meze', 9)]


  • 对所有存储库和所有分支重复以上两个步骤。

是的。存储提交历史记录