情况:我们公司创建的软件版本是使用Hudson从git存储库中的代码构建的。有时,我们需要重现先前版本的版本,因为试用期已过期。这引起了一个问题,因为我们需要找到与该软件版本相对应的代码版本。我们的开发人员不使用标签或分支,因为它不符合我们的工作方式。
作为这个问题的解决方案,我认为每次构建成功时我们都应该包含一个自动标记系统。
我想到的工作流程是下面的(在我们的构建机器上执行):
git checkout .
git clean -df
git pull
git checkout .
或git checkout <tag>
git tag -m "automated tag" versionXXX
git push --tags
关于这种工作方式我有3个问题:
答案 0 :(得分:2)
1)这种工作方式是否存在明显缺陷? (含糊,我知道 - 抱歉)
不。
2)对于这个用例,在轻量级标签上使用带注释的标签是否有任何优势?
不,如果您没有在标记消息中添加任何有意义的内容,那么首先创建一个消息就没有意义了。没有真正的缺点(它们几乎不占用任何空间)。 如果从构建中获得任何结果,您可以将它们放在标记注释中(除非您还有其他已检查的日志记录机制),例如警告的数量,或类似的东西。
3)让很多标签指向同一个提交是否有任何缺点?
不,除了可能使标签命名空间变得混乱(标签名称必须是repo独有的)之外,没有问题。如上所述,他们几乎不使用任何空间。 如果冗余标记有任何问题,您可以实现如下策略:如果前一个构建的标记指向我现在要标记的相同提交,请不要标记它。如果您查找特定版本的标记,请在您指定的标记之前使用最新版本的标记。 (这只有在查找自动化时才可行;否则只需重新标记提交。)