我们有相当常见的Git工作流程,如this article中所述。 现在,在我们的构建服务器上,我们希望为 develop , master 和上一个版本制定构建计划。问题是最后一个发布分支在时间上有不同的名称(* release - **)。
有什么方法可以解决这个问题?是否可以创建可由构建服务器使用的具有永久名称 lastrelease 的别名?还有什么吗?
答案 0 :(得分:2)
如果您的release- *标签名称有自然排序规则,您可以列出它们并选择最后一个。
例如,这可以通过这种方式实现:
git tag -l release-* | sort -V
git tag的-l选项是列出与提供的模式匹配的标签。
sort -V是为您的案例设计的特殊数字排序选项
如果你想选择最后一个,只需追加尾巴-1:
git tag -l release-* | sort -V | tail -1
如果你想获得subversion的最后一个版本(例如1.x版本),那很简单:
git tag -l release-1.* | sort -V | tail -1
答案 1 :(得分:1)
可以通过git symbolic-ref
命令创建指向其他引用的引用。
但是,这不一定是预期的行为:What's the recommended usage of a Git symbolic reference?
您的另一个选择可能是在最新的HEAD
分支上拥有主Git存储库点release-
,然后让构建服务器构建HEAD
,develop
,和master
。
第三个选项是简单地拥有release-latest
分支,并在更新当前release-
分支时使用post-receive hook来更新它。