我们的一位开发人员继续将其软件发布到"发布" Nexus的存储库采用奇怪的版本控制格式,例如5.2.3-6-gc0dc298。这实际上是major.minor.build-#ofcommits-lastCommitTag。我理解这对于开发人员来说可能很有用,可以通过观察版本号来快速识别对这个二进制文件所做的功能,但这不是标准吗?
我认为这与敏捷与否,Git与SVN差异有关,而与Java与Haskell无关。我相信可释放的版本格式只是x.y.z,而我会将上述格式视为SNAPSHOT格式。我对吗?在生产环境中使用长版本格式是否有任何优点?
答案 0 :(得分:2)
奇怪的版本控制格式,例如5.2.3-6-gc0dc298。
这是一种基于最近的标记引用尚未标记的提交的方法。
换句话说,“可释放的版本格式只是x.y.z”可以通过标记实现,遵循您想要的任何标准,例如Semantic Versioning。
但是,如果您没有标记所有版本(通常是在多个日内发布周期中,您正在推送和部署大量非常小的修补程序),那么git describe
是一个很好的选择。
它分开: