git:将现有存储库拆分为子模块

时间:2018-12-09 18:10:06

标签: java git maven git-submodules

我仅找到有关如何使用git子树拆分存储库的答案。但是,我明确需要子模块。

这是一个Java Maven项目。当前,所有内容都在一个Maven项目和一个存储库中。我的目标是实现以下目标:

根存储库应包含主要的pom.xml,系统文档等 然后应该有几个子模块,一个用于实用程序库,一个用于主应用程序,依此类推。子模块是它们自己的maven项目,从根存储库中的主maven项目引用。根存储库将不包含任何源代码。

我可以从当前HEAD创建所有新内容,但是对我来说重要的是,提交历史记录应尽可能完整。

2 个答案:

答案 0 :(得分:2)

MockK

答案 1 :(得分:1)

  

我仅找到有关如何使用git子树拆分存储库的答案。但是,我明确需要子模块。

这正是您需要做的。用git subtree --split <path>将“ main”分割成多个分支,然后为每个子模块添加远程,并将分支推送到远程。

# split the "main repo"
git subtree --split .... <branch1>

# For each branch that you extract

# add remote for branch 1
git remote add submodule1 <url>

# push the submodule
git push submodule1 <branch>

设置完所有子模块后,将它们添加到“主”存储库中

# add the submodules 
git submodule add <url>

# and once all your submodules are added commit the .gitmodules file