首页 文章

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

提问于
浏览
0

我只找到了如何使用git子树拆分存储库的答案 . 但是,我明确地想要子模块 .

这是一个Java maven项目 . 目前,一切都在一个maven项目和一个存储库中 . 我的目标是实现这样的目标:

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

我可以从当前的HEAD创建新的东西,但对我来说重要的是提交历史记录尽可能完整 .

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
    

相关问题