将Git仓库拆分为多个较小的仓库

3
我们有一个大项目,使用了许多具有分层依赖结构的库来开发其结构。
现在,我们要转向另一个项目,我想将其拆分为每个库一个仓库和一个或多个特定于项目的仓库,但保留历史记录。实际上,这意味着将一个大仓库的子目录转换为具有依赖关系的单独仓库,可能通过子模块或其他适当的机制处理依赖关系。在git中,是否可以进行这种重组操作而不会太费力?

1
请参见 https://help.github.com/articles/splitting-a-subpath-out-into-a-new-repo. - user725091
这也取决于你的构建机制是什么。如果你使用的构建可以轻松地引入二进制依赖项,那么你可以单独构建库等,而不必担心子模块等。 - ebneter
@JonO。在Stack Overflow上,一般的规则是你需要粘贴你链接的网站内容。因为网站有消失或内容改变的倾向。你的链接是404。 - Noah
1个回答

2
这取决于您的需求。如果您想将新仓库作为子模块跟踪,并重写历史以使其看起来一直在使用该子模块,那么您需要编写一个git filter-branch脚本来处理该子目录。棘手的部分是要反映子模块中的分支和合并情况。
如果您只想从现在开始进行此操作,将特定路径中的提交移动到新仓库将很容易。只需在新分支上进行过滤分支,并仅包括涉及更改的历史记录。创建一个新的仓库,仅获取该分支。现在,您可以将此仓库作为子模块添加,并从此时开始跟踪后续更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接