如何使用 Git 更新我的项目版本号?

Posted

技术标签:

【中文标题】如何使用 Git 更新我的项目版本号?【英文标题】:How can I update my project version numbers using Git? 【发布时间】:2018-07-14 05:36:33 【问题描述】:

假设我有两个分支:developfeature

假设我还有一个名为 VersionNumber 的文件,其内容如下:

BUILD_NUMBER 1 个

我想使用 Git 挂钩,以便当我将 feature 合并到 develop 时,BUILD_NUMBER 字段会自动递增。

我想到了使用post-merge钩子的以下过程:

    检查合并到的分支是develop 通过将BUILD_NUMBER 递增1 来更新VersionNumber 文件 添加更新文件:git add VersionNumber 修改提交:git commit --amend -C HEAD --no-verify

在最终命令之前一切正常。 Git 说我不能在合并过程中修改提交(这让我感到惊讶,因为我认为这是post-merge)。

关于我如何做到这一点的任何建议(使用post-merge 或任何其他挂钩)?

【问题讨论】:

【参考方案1】:

很遗憾,您的问题缺少代码示例。但是我能够为了它的乐趣而重现。 实际上,您不能将某些内容(例如对文件的更改)修改为合并提交-这似乎有些道理。实际上,您是合并后的,但是通过使用 amend 您尝试返回合并提交并对其进行修改。

所以,我认为,你最好的机会就是简单地为版本提升添加一个提交。

其他任何事情都会让它变得非常复杂,并且容易出现不起作用的极端情况,并且会花费您大量时间来弄清楚如何挽救您的提交和版本控制。我总是喜欢让事情尽可能简单。但也许其他人可以想出更好的东西。

这是我写的post-merge钩子,如果有人感兴趣的话;不检查分支:

perl -i -pe 's/(\d+)/1+$1/e' VersionNumber 
echo "bump version: `cat VersionNumber`"
git add VersionNumber
git commit --amend -m "bump version: `cat VersionNumber`"

【讨论】:

以上是关于如何使用 Git 更新我的项目版本号?的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何/何时更新版本号?

git hook更新包json版本

非交互式方式来压缩一系列git提交,而不是从HEAD开始

npm git 存储库不更新版本

我的旧项目将 Alamofire 更新到 4.0 版时遇到错误

使用git上传本地项目到GitHub上和更新