如何在git

时间:2019-10-26 08:36:35

标签: git version gitversion

我需要在git存储库中保存版本文件。

我有释放过程(管道),当我们决定进行释放时,该过程会手动触发,该过程应该执行:

  1. 克隆存储库
  2. 运行测试
  3. 计算新版本
  4. 使用新版本更新版本文件
  5. 提交并推送新版本文件
  6. 使用新版本在git中创建标签/分支

现在,当我要从此标记进行克隆时,版本文件应包含正确的版本。

如果在运行测试(#2)时其他人对仓库进行了更改,会发生什么情况?在#6中生成的标签是否还会包含未在发布过程中进行测试的更改?

此流程的逻辑是否正确,或者我有更好的方法来管理版本文件?

1 个答案:

答案 0 :(得分:1)

版本不是作为文件的新修订版静态存储的内容。
这是因为存储该文件的新修订版本的行为意味着……Git存储库本身具有一个新提交,需要提取该提交,并迫使团队成员在该新提交之上合并或重新建立自己的工作。

版本在构建可交付成果时在构建时进行存储。
例如,在Go中,您可以使用flag pass to the Go linker来初始化字符串变量。

这样,在运行时,二进制文件不仅可以生成版本,还可以生成您选择记录的任何其他构建时间信息。
我通常以这种方式集成:

  • 构建时的Git提交哈希
  • 基于API更改的静态版本
  • 用户启动构建
  • 构建日期

这样,您的程序可以显示很多有关其构建版本的信息。