git - 在 Git 中管理多项目分支

标签 git maven structure git-flow

在Maven项目/SCM场景下有没有工具可以实现以下抽象操作?

  • 给定一个应用程序项目,为该应用程序及其使用的所有快照库创建分支;这些分支应该作为一个逻辑分支进行管理(见下)
  • 给定应用程序项目的逻辑分支,发布它(通过运行 Maven 发布);这意味着发布多个分支,每个库一个

背景(原创):

如您所知,Git 建议使用每个项目一个存储库的结构范式。同时,任何严肃的项目,在我们的例子中是基于 Maven 的,都附属于几个内部库。在任何冲刺期间,项目及其附加的库都会被修改。在 Git 世界中,这意味着修改将存在于多个 Git 存储库中。

如果我们想在 sprint 中分支工作,可能是因为我们使用 Gitflow,它要求我们在 sprint 结束时创建一个发布分支,我们将如何在所有涉及的库中以逻辑方式进行在冲刺中,而不是手动分支每个库?

一个 Maven 感知工具(一个可以内省(introspection) POM 来找出传递快照依赖列表的工具)会更好。

我能否在代表我的一个逻辑分支的多个物理分支(每个项目一个)之间创建逻辑关系?

Git 或某些 Git 工具是否支持逻辑分支?

我希望你不会说子模块。我在这里寻找的是抽象出 VCS 的细节,而不是成为 Git 大师。此外,我希望尽可能在一次操作中完成操作,因为必须单独分支每个库很容易出错并且很容易被遗忘。

最佳答案

设置 Jenkins服务器。

它可以将每个 maven 模块构建为一个单独的项目,然后自动重建具有快照依赖关系的任何其他项目。

更新

Jenkins 的 GIT 插件具有管理将开发功能分支自动 merge 到“主”或“集成”分支的功能。请参阅文档:

https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures

另一种选择是使用像 Gerrit 这样的代码审查工具来控制功能开发。 . 再次是 Gerrit 控制集成到共享代码流的更改,Gerrit 可以与 Jenkins 集成以确保所有提交的更改集都通过代码测试。

最后使用 M2 Release plugin 切割版本,它是标准发布插件的包装器。 (这意味着您在 Jenkins 中始终有两种类型的构建。由代码提交触发的自动构建和通过 UI 显式触发的发布构建)。

关于git - 在 Git 中管理多项目分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683727/

相关文章:

windows - 当我尝试拖放一个包含 git 存储库(目前是子模块)的文件夹时,它说 "Can' t drop folder here...”

IntelliJ IDEA 中的 JAVA 11 和 JavaFX

java - Lombok 没有在 Maven 中编译

xcode - 您如何使用 swift 使用 xcode 6 在 iOS 中以编程方式创建有组织的相册?

c - 如何使用结构创建数据库表

git - "git add *.js"没有添加子目录下的文件

git - 使用服务器端 Hook 的托管 Git 解决方案?

git - 如何忽略临时文件

java - 无法执行目标 gwt-maven-plugin :2. 5.1:在项目源或资源中找不到 gwt 模块名称(在 eclipse 中工作,但 maven 安装失败)

c - C语言中的自引用结构是什么?