git - 语义版本控制和 git 分支

标签 git version-control semantic-versioning

我有一个 v1.0 的主分支和 v1.1dev 的开发分支。

然后,我从 dev 创建一个新的发布分支,并将版本号从 v1.1dev 更改为 v1.1,完成后,将所述发布分支 merge 到 master 中,然后急速 - v1.1 诞生于 master .

但是随后,我将相同的发布分支 merge 回开发中,因此开发分支也是v1.1

虽然这在技术上是正确的,但我觉得 dev 应该始终以 dev 结尾,因为毕竟,它是正在努力实现下一个真正版本的开发版本。

<小时/>

所以我的问题是:

  • 是否每个人都在 dev 分支上进行一次提交,以在 merge 到发布分支后提升其 Dec 代码的版本,或者是否有我遗漏的东西(脚本、方法、技术等)?
  • 此外,上述描述是否普遍代表了人们如何更改版本号?

TL;DR: 什么时候应该在假设语义版本控制的 git 版本控制项目的各个分支中更改版本号?

最佳答案

虽然现在这对您来说可能不再是问题,但您说的是对的:

... it is always the development version that is working toward the next real version...

当您对代码进行分支时,请将分支版本保留为 v1.0。这将是发布分支,即进入此版本的代码库,如果将来用户无法升级到下一个完整版本,您必须修复错误或增强此版本,则可以对其进行修补。

您始终可以将该分支的更改 merge 回主分支,但显然不能将任何定义版本号的代码 merge 到其中,版本号通常位于配置、属性或构建文件中。

分支后,将 master 中的版本升级为 v1.1.x 或 v1.1-DEV 或任何您喜欢的名称。

关于git - 语义版本控制和 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029696/

相关文章:

git - Windows 客户端的 GitHub 中的 pull/推命令在哪里?

git - 从 git azure devops 删除文件及其历史记录?

git - 如何最小化 git merge 冲突?

gradle - 如何使用 Spring Boot、Gradle、Semantic Versioning 和 Jenkins 生成应用程序版本

git - 在不 merge 的情况下使用 master 更新 git 分支

git - 无法理解 Git 的 difftool 配置是如何设置的

version-control - 源代码管理中的分支和合并

version-control - 针对源代码控制存储库的 vimdiff

version - 在 "SemVer.org"中,第 7 项中的 "It MAY include patch level changes"是什么意思?

javascript - 在 Bower 中指定版本号