我们的团队目前正在从 SVN 迁移到 Git。我们目前使用 Maven 作为我们的构建工具。
目前,我们的项目通过 Maven 构建层次结构,但在文件层次结构/存储库方面是扁平的。我的目标是更紧密地匹配我们存储库中的 Maven 构建层次结构和文件结构层次结构,以使一切更容易理解。
我的问题是创建 Git 存储库的适当级别是什么,以便维护文件层次结构/组织?示例:
- Big Project - (no source here, just a pom)
- Backend Project (source + pom)
- Clients (no source here, just a pom)
- Console (source + pom)
- Web (source + pom)
因此“仅 pom”项目将用于对实际源项目进行分组。但是 Git 存储库属于哪里?一些团队成员担心对 Web 项目的提交不属于 Console 项目的历史记录。但是,如果 Git 存储库处于最低级别(树的叶节点),我们将失去文件结构组织(即使可以在 Maven 中维护构建层次结构)。
编辑:团队成员关注的不是提交历史,而是标签。鉴于 Git 存储库根目录位于 Big Project,我想标记 Web 项目(通过标记 Big Project),为什么该标签是否应该包含 Console 项目,它可能与 Web 标签无关?
最佳答案
我有一个由 60 多个模块组成的 Maven 项目,我的团队讨论了同样的问题,即 git 存储库根目录应该在哪里。到目前为止,每次讨论都以将整个项目(一直到根 pom)留在同一项目中而告终。该决定主要基于开发人员的便利性——我们不必克隆和打开多个不同的存储库即可在本质上相同的项目中工作。历史问题对我来说似乎是假的。谁在乎历史是否混杂?您始终可以在 git 中查看特定文件/模块/路径的历史记录,不包括任何其他文件。
我们考虑过的一个选项叫做 git submodules。 ,它可以让你在 repo 中嵌入 repo 。如果您决定打破层次结构,这可能是组织层次结构的一种选择。
关于git - 使用 Maven + Git 组织项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084625/