gitversion - GitVersion Mainline - 每次推送的版本增量
问题描述
我正在使用带有 Mainline 模式的 GitVersion。使用默认设置,它会随着 master 中的每次提交增加补丁号。有没有办法在每次推送而不是每次提交时增加补丁数量?
如果我将 3 次提交一起推送,补丁会增加 3。在这种情况下,我会在 VSTS 构建中获得从 2.0.4 到 2.0.7 的版本跳转。
GitVersion.yml
mode: Mainline
注意:我只有一个分支,即“master”,我将继续将我的更改直接推送到 master。我还不打算使用任何分支策略。
解决方案
在我看来,您有两种选择。
您可以覆盖increment: None
您的master
分支配置:
branches:
master:
increment: None
但是,我认为您总是需要通过 git 提交“手动”更改代码版本,例如包含在您的提交消息中:+semver: (major|minor|patch)
,或更新您的GitVersion.yml
文件以设置next-version
配置。我认为,这完全抵消了使用 GitVersion 的许多好处。但是,这仍然比完全没有版本控制要好!
但是,说你在做“主线”开发,并不一定意味着你只在 master 分支中开发。我相信主线开发主要意味着您从 master 分支中释放(即您没有使用带有两个长期存在的分支的 GitFlowmaster
和develop
),并且master
任何时间点的状态都可以部署到生产中。
因此,正如@prestonsmith在他的回答中已经说过的那样,您可以使用两个不同的分支来实现您正在寻找的东西。您和您的团队可以在 master 的短期主题分支中工作,并最终合并(正常的合并提交以保留历史记录,或 squash 合并(丢失分支历史记录,只需将单个提交引入 master 并创建所有更改)主题分支)。这将导致单个补丁版本增量的默认行为,稍后可以通过使用 git 标签将其更改为次要或主要增量,或者在您的合并提交消息中添加类似的内容+semver: (major|minor)
来代替增量主要或次要版本号。
推荐阅读
- javascript - 如何使用 useBuiltIns 排除 core-js:“用法”
- php - 如何使用 AJAX 加载可编辑的表格
- php - Laravel:排队作业表修改字段问题
- office365 - EWS 有附件,但附件集合为空(一个驱动器)
- django - Django 创建新的购物车产品而不是更新已经存在的对象
- opencart - OpenCart cookie 的问题
- tensorflow - 如何微调通用句子编码器 3 嵌入到自己的语料库
- python - Pandas 中的多索引合并、连接或连接
- arrays - 如何比较和添加数组的元素
- python - 通过允许容差匹配两个包含稍微不同的浮点值的列表