我们有一个用于开发的git repo。我们会不时发布标有标签的版本。还有一个自动构建系统,我们想要构建最新的标记版本。与此同时,提交工作正常进行。
我们如何标记最新版本以便自动构建可以获取它?
自动化系统始终从同一URL中选择版本非常重要。无法使用带有describe
的脚本或任何其他获取时间方法来解析最新标记。
第一个想法是使用特定的轻量级标记,如LAST_RELEASE,并在每次标记发布时移动它(删除并重新创建?)。另一个想法是维护一个单独的分支并保持其头部与最后一个发布标记同步。另一个想法是使用分支,但不是使用合并/ rebase保持同步,只需为每个版本删除并重新创建它。
我并不特别喜欢这两种方法。是否有任何确定的理智方法来实现这一目标?
答案 0 :(得分:1)
最好的方法是使用分支。您应该发现,如果操作正确,stable
分支应始终向前移动,而不会进行任何变基/推力。每当您执行新版本时,都可以签出stable
分支并合并到develop
分支。每当您需要将更改修补为新版本时,您可以将提交/合并分支添加到stable
分支,然后签出您的develop
分支并合并到stable
。
根据这个想法,查看常用的分支模型here。您应该会发现此模型中的master
分支正是您跟踪最新版本所需的分支。
如果您无法切换到这样的分支模型,那么使用分支仍然会更好。如果要标记新版本,请将存储库签出到所需的版本提交,然后运行git push -f origin release
,这与删除和重新创建分支具有相同的效果。
标记旨在始终在创建时标记相同的提交。分支意味着向前移动。