关于git:创建新的主仓库。

Create new Main repo. Add two separate repos into Main repo but not merge them and without losing history

我正在创建一个应用程序,在前端和后端分别进行回购。这两个公司都致力于Github。

现在我想创建一个名为MAIN的新回购,并将前端和后端回购移动到主回购中。我想把它们分开,不要合并。我还想保留两个repo的日志和提交历史记录。这两个回购协议都有分支,后来合并为master。

我看到了一些帖子,展示了如何将repo合并到一个保存历史的站点,但我不想合并它们。

我不是在找子模块,也不是孤立的分支。


在这个网站上找到了答案:https://saintgimp.org/2013/01/22/merging-two-git-repositories-into-one-repository-without-loss-file-history/

将两个Git存储库合并到一个存储库中而不丢失文件历史记录基本理念是我们遵循以下步骤:

  • 新建空存储库新建。
  • 进行初始提交,因为在进行合并之前我们需要一个提交。
  • 将远程文件添加到旧存储库old a。
  • 将olda/master合并为new/master。
  • 将子目录设为olda。
  • 将所有文件移动到子目录olda中。
  • 提交所有文件移动。
  • 对oldb重复3-6。
  • 这些步骤的PowerShell脚本可能如下所示:*

  • 假设当前目录是创建新存储库的位置。创建新存储库

    • git init
  • 在进行合并之前,我们必须进行初始提交,因此我们将进行一次虚拟提交。

    • 江户十一〔一〕号
    • 埃多克斯1〔2〕
    • 埃多克斯1〔3〕
  • 为添加遥控器并获取旧回购

    • 江户十一〔四〕号
  • 将旧的主文件合并到新的主文件中

    • 埃多克斯1〔5〕
  • 清理我们的虚拟文件,因为我们不再需要它了

    • 埃多克斯1〔6〕
    • 江户十一〔七〕号
  • 将旧的repo文件和文件夹移动到子目录中,这样它们就不会与以后出现的另一个repo发生冲突。

    • 埃多克斯1〔8〕
    • 埃多克斯1〔9〕
  • 采取行动

    • 埃多克斯1〔10〕
  • 为老B做同样的事

    • 江户十一〔11〕。
    • 埃多克斯1〔12〕
    • 埃多克斯1〔13〕
    • 埃多克斯1〔14〕
    • 埃多克斯1〔15〕