【问题标题】:Combine two git repositories with all the history and all branches in one将两个 git 存储库与所有历史记录和所有分支合二为一
【发布时间】:2020-01-03 21:07:28
【问题描述】:

我正在使用多个 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       

我找到了多个答案,用于将一个存储库的特定分支合并到其他存储库的分支中,例如 merging branches of two git repositories 或使用 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)

我认为必须有a svn dump之类的东西来转储存储库B的所有信息并将其加载到目标存储库A中的孤立分支。

每个文件的历史记录应该在最后仍然可用,以便能够归咎于在分离的存储库中所做的更改。

明确一点:我不想合并不同存储库的分支。我想将整个存储库 A 和 B 与所有分支和提交历史结合起来。

【问题讨论】:

标签: git repository


【解决方案1】:

保留所有历史记录和分支的类似问题: Combining multiple git repositories

我很好的文档可以在这里找到 https://medium.com/altcampus/how-to-merge-two-or-multiple-git-repositories-into-one-9f8a5209913f

【讨论】:

  • 也许我没明白,但在第二个链接中他们只是合并了主分支。其他未合并的分支呢?
  • 据我所知,第一个链接中的内容相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 2014-12-17
  • 2020-05-28
  • 2018-04-15
  • 1970-01-01
  • 2013-08-09
  • 2023-03-19
相关资源
最近更新 更多