繁体   English   中英

在保留和缩小分支范围的同时拆分git存储库

[英]Split git repository while preserving and scoping-down branches

关于如何将大型git存储库(LargeRepo)拆分为较小的存储库(SmallRepoA,SmallRepoB)并保存提交的大量教程。 我想通过附加要求做到这一点,即每个SmallRepo仅继承那些与SmallRepo中的文件相关的分支和分支提交

对于每个SmallRepo:

  1. 如果分支对SmallRepo中的文件没有影响,请不要维护分支
  2. 对于其余分支,删除对SmallRepo中的文件没有影响的提交。

有效地,我试图获得最终结果,以模仿如果我有一个单独的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。

这种用于拆分存储库的常规解决方案也适用于对分支进行范围界定: https : //stackoverflow.com/a/17864475/356790

出于某种原因,它不适用于我在本地创建的存储库,但对于我从GitHub克隆的存储库来说效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM