git - 使用成功的 Git 分支模型支持多个版本

标签 git versioning git-branch branching-and-merging git-flow

在我们公司,我们正在从 SvN 迁移到 Git(是的,迟到总比不到好)。为此,我们还尝试简化版本控制过程。为此,我找到了一篇有趣的文章:Vincent Driessen 的 Successful Git Branching Model。

据我从这篇文章中读到的,开发人员假设是线性发布。明确一点:

v1.0.0 --> v1.0.1 --> v1.0.2 --> v1.1.0 --> v1.1.1 etc

未提及对旧版本的支持。例如:我们最多支持三个大​​版本回退,因为有些客户不想升级。假设我们有以下版本:

v7.0.0 --> v8.0.0 --> v9.0.0 --> v10.0.0

v8.0.0 v9.0.0 发布后发现严重错误时,我们检查标记 v8 .0.0,修复bug, merge 回developmaster分支。 merge 到 master 获取标签 v8.0.1

在我看来有些奇怪,因为两件事:

  1. master 时间线看起来像 v7.0.0 --> v8.0.0 --> v9.0.0 --> v8.0.1 --> v10.0.0 .我完全知道这是可能的,但它也可以接受吗?
  2. 当我从 hotfix merge 到 master 时(当时 masterv9.0.0)并用 v8.0.1 标记,我是否也能获得在 v8.0.0v9.0.0 之间引入的功能?

提前致谢!

最佳答案

对我来说,标签v8.0.1 应该是 merge master 之前的提交。如果您想修补新版本,那么您也可以在那里 merge 其他标签。

v8.0.0 --> v9.0.0 --> v10.0.0
   \          \           \
  v8.0.1 --> v9.0.1 --> v10.0.1/master

关于git - 使用成功的 Git 分支模型支持多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194174/

相关文章:

version-control - 无法强制创建工作区

git - 如何删除远程裸存储库分支上的提交?

git - 如果我删除了我的 git repo 上的一个分支并且有人试图向它推送提交,会发生什么?

git - 按任何内容删除 git 分支,而不是名称

mercurial - 跨多个 CruiseControl.NET 项目全局增加 Last Build Label

git - Travis-ci:观察并从 Git 远程存储库构建单个分支

git - 我如何将 "move"从 "no branch"提交到实际分支?

python - 如何使用 docker 从代理后面运行 pip3+git?

python - 无法同步数据库 “DatabaseError: no such table: django_site”

versioning - 在 VSTS 构建过程中使用 `dotnet pack` 将构建号添加到包版本