将多个项目合并到一个解决方案中,同时保留 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提交记录