将多个项目合并到一个解决方案中,同时保留 git 历史记录

Posted

技术标签:

【中文标题】将多个项目合并到一个解决方案中,同时保留 git 历史记录【英文标题】:Merging multiple projects into one solution while preserving git history 【发布时间】:2021-06-17 18:06:32 【问题描述】:

我有多个项目(解决方案),每个项目都有一个单独的 git repo 设置。

我打算将项目合并到一个解决方案中以简化构建和分发,因为所有项目都是同一个数据库解决方案。架构如下

项目 A(回购 A):

“A”解决方案 数据库库解决方案* Wix 安装程序解决方案 Wix 捆绑解决方案

项目 B(回购 B):

“B”解决方案 数据库库解决方案* Wix 安装程序解决方案 Wix 捆绑解决方案

*(数据库库解决方案在两个项目中完全相同,但每次更改都需要将更改复制粘贴到另一个项目)

为了简化和统一开发环境,我想如下:

主项目:

解决方案 A A 的 Wix 安装程序和捆绑包 解决方案 B B 的 Wix 安装程序和捆绑包 数据库库解决方案

如何通过将项目统一为具有全新 git 存储库的单个解决方案,同时保留解决方案 A 和 B 的 git 历史记录来实现此结果?

【问题讨论】:

这能回答你的问题吗? ***.com/a/10548919/7421710 历史就是提交;提交是历史。如果你有提交,你就有历史。这里的所有都是它的。将所有提交放在一个存储库中,您就拥有了所有历史记录。 【参考方案1】:

您可以使用 git 子模块来实现这一点。创建主 git repo 并通过添加 .gitmodules 文件来添加所需的 git repos 和 git 子模块:

[submodule "module1"]
    path = /path/module1
    url = https://github.com/user/module1
[submodule "module2"]
    path = /path/module2
    url = https://github.com/user/module2

你可以阅读 git 子模块here

【讨论】:

我知道子模块解决方案,但是它不适合我的情况我想在一个存储库中拥有整个解决方案(一个包含两个项目 AB 的主解决方案),同时保留旧的 git 历史记录(从项目 A 和 B 一起)

以上是关于将多个项目合并到一个解决方案中,同时保留 git 历史记录的主要内容,如果未能解决你的问题,请参考以下文章

开发工具-GitGit中合并多个项目并保留所有commit提交记录

开发工具-GitGit中合并多个项目并保留所有commit提交记录

开发工具-GitGit中合并多个项目并保留所有commit提交记录

git保留两个repo的commit并进行合并

Git将多个分支合并到一个新分支中[重复]

git系列9(分支工作流程)