如何在git中管理版本文件
Posted
技术标签:
【中文标题】如何在git中管理版本文件【英文标题】:how to manage version file in git 【发布时间】:2020-02-22 10:35:26 【问题描述】:我需要在我的 git 存储库中有版本文件。
当我们决定发布时,我有手动触发的发布流程(管道),这个流程应该这样做:
-
克隆回购
运行测试
计算新版本
用新版本更新版本文件
提交并推送新版本文件
使用新版本在 git 中创建标签/分支
现在,当我从这个标签进行克隆时,版本文件应该包含正确的版本。
如果在测试运行时 (#2) 其他人提交了对 repo 的更改,会发生什么情况,在 #6 中生成的标签是否还会包含在发布过程中未测试的更改?
这个流程的逻辑是否正确,或者我有更好的方法来管理版本文件?
【问题讨论】:
否;如果其他人推送已提交的更改,则来自 CI 的提交不再与远程共享历史记录,并且推送将失败。 你可能想要使用像 gitversion 这样的工具来根据标签和提交历史计算你的版本:gitversion.readthedocs.io/en/latest 【参考方案1】:版本不是静态存储的,作为文件的新版本。 那是因为存储该文件的新修订的行为意味着...... Git 存储库本身有一个新的提交,需要获取,并迫使团队成员在新提交的基础上合并或重新调整他们自己的工作。
版本在构建时存储,在构建交付物时。 例如,在 Go 中,您将使用 flag pass to the Go linker 来初始化字符串变量。
这样,在运行时,二进制文件不仅可以生成版本,还可以生成您选择记录的任何其他构建时间信息。 我通常是这样集成的:
构建时的 Git 提交哈希 基于 API 更改的静态版本 启动构建的用户 构建日期这样,您的程序可以显示很多关于其构建版本的信息。
【讨论】:
以上是关于如何在git中管理版本文件的主要内容,如果未能解决你的问题,请参考以下文章