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

标签 java git maven git-submodules

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

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

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

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

最佳答案

I only found answers on how to use git subtrees to split up a repository. However, I explicitly want submodules.

这正是你需要做的。将“主”拆分为 git subtree split <path> -b <branch> 的分支然后为每个子模块添加远程并将分支推送到远程。

# split the "main repo"
git subtree split -P path -b <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

关于java - git:将现有存储库拆分为子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53695232/

相关文章:

java - JPA - 按周数获取实体 - Java EE

java - Restful Web 服务返回 404,错误的 web.xml?

git branch -f bN, git checkout bN 和 git push --force 在交互式 rebase 之后的所有提交

git - 将 rsa key 添加到系统

Java - Maven - OpenImaj 项目组装错误

java - Jetty 在错误的目录中搜索 webdefault.xml

Java 套接字(Android 到 Java 服务器)

java - mergeSort - Java 中的破坏性与非破坏性

Git Revert 命令拒绝还原 merge

Maven 插件注释损坏