拆分git存储库,同时保留和确定分支范围

时间:2013-11-14 20:07:29

标签: git split repository git-filter-branch git-rewrite-history

有很多关于如何将大型git存储库(LargeRepo)拆分为较小的存储库(SmallRepoA,SmallRepoB)并保留提交的教程。我希望这样做的另外要求是每个SmallRepo只继承那些与SmallRepo 中的文件相关的分支和分支提交。

对于每个SmallRepo:

  1. 如果分支对SmallRepo中的文件没有影响
  2. ,请不要维护分支
  3. 对于其余分支,请删除对SmallRepo中的文件没有影响的提交。
  4. 实际上,我正在尝试将最终结果发送给micmic,如果我开始使用单个SmallRepos,那么世界会是什么样子。

    以下是一个例子:

    让我们说LargeRepo看起来像这样:

    LargeRepo
    |---- Folder1
    |---- Folder2
    |---- Folder3
    

    我想分成三个SmallRepos,每个高级文件夹一个。

    Folder1
    Folder2
    Folder3
    

    让我们说LargeRepo有Branch1和Branch23。 Branch1对Folder1中的文件进行了更改,Branch23对Folder2和Folder3中的文件进行了更改。

    分支视图如下所示:

    Folder1
    |----> Branch1 (all commits)
    
    Folder2
    |-----> Branch23 (only commits affecting files in Folder2)
    
    Folder3
    |------> Branch23 (only commits affecting files in Folder3)
    

    理想情况下,解决方案可以在Windows上使用git命令行实现,而不涉及BASH。

1 个答案:

答案 0 :(得分:1)

这种拆分回购的一般解决方案也适用于取消范围分支: https://stackoverflow.com/a/17864475/356790

由于某种原因,它不适用于我在本地创建的repo,但是对于我从GitHub克隆的repo工作正常。