git - 将两个 git 存储库与所有历史记录和所有分支合二为一
问题描述
我正在使用多个 git 存储库,并且需要修改其中的许多以实现新功能。因此,我产生了将这些存储库合并为一个的想法,以减少管理工作以及为所有存储库中的每个功能创建分支的需要。
a a a a a
| b | b | b | b | b
| | c | | e | | c | | c | | c
|/ | d |/ | d |/ | d |/ | d |/ | d
| / | | / | | / | | / | | / |
| / / | / / | / / | / / | / /
|/ / |/ / |/ / |/ / |/ /
| / | / | / | / | /
| / | / | / | / | /
|/ |/ |/ |/ |/
| | | | |
A B C D E
我找到了将一个存储库的特定分支合并到其他存储库的分支中的多个答案,例如合并两个 git 存储库的分支或使用 git subtree。那不是我想做的。
我想将整个存储库 B 与所有分支和提交集成到 A 中。最后,一个存储库中有多个根,每个根都有一堆分支。
a a
| b b |
| | c e | |
|/ | d d | \|
| / | | \ |
| / / \ \ | ...
|/ / \ \|
| / \ |
| / \ |
|/ \|
| |
A (B)
然后我想根据它们的特征(a,b,d)合并所有分支,以将所有树连接在一起。
a
/ \
/ \
/ b \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
a / \ a
| b d b |
| | c / \ e | |
|/ | d d | \|
| / | | \ |
| / / \ \ |
|/ / \ \|
| / \ |
| / \ |
|/ \|
| |
A (B)
我认为必须有类似svn dump的东西来转储存储库 B 的所有信息并将其加载到目标存储库 A 中的孤立分支。
每个文件的历史应该在最后仍然可用,以便能够归咎于在分离的存储库中所做的更改。
说清楚:我不想合并不同存储库的分支。我想将整个存储库 A 和 B 与所有分支和提交历史结合起来。
解决方案
保留所有历史记录和分支的类似问题: Combining multiple git repositories
我可以在这里找到很好的文档 https://medium.com/altcampus/how-to-merge-two-or-multiple-git-repositories-into-one-9f8a5209913f
推荐阅读
- postgresql - 使用 MIN-Value 获取整行并按另一列分组
- powershell - 导入 csv 并输出每个文件的目录、名称和所有者。显示无效参数
- typescript - 从没有冗余的接口创建类
- html - 在css中有什么方法可以在不使用转换的情况下获得聊天气泡?
- android - Instagram IGTV 无法下载
- javascript - 标签的 EsLint 规则
- python - 使用 Python Beautifulsoup 通过 HTML 标签进行网页抓取
- list - 带有原子元素的列表 Swi-Prolog
- nagios - Nagios - “当前服务状态”和“服务警报”之间的区别
- ionic-framework - 如何使用离子框架过滤此 JSON 数据?