7

可能重复:
版本号的 git 等效项是什么?

我现在一直在使用颠覆,并想切换到 git。阅读手册后,我只有一个保留,我使用 svnversion 获得一个参考编号,即:唯一的、短的、相对于时间单调的(总是增加)。

  • 它必须是唯一的,所以我可以用它来复制文章。
  • 它必须简短,以便可读,可用于文件名、页脚、版本号显示。
  • 它只能增加(相对于时间单调),因此任何人都可以比较两篇文章的年龄,而无需知道年龄(日期)。

约束:如果我们可以得到一个分支 ID,则只需要满足同一分支上的文章的上述要求。(分支 ID 可以是任何可以比较身份的东西,“这是发布分支吗?”。

[文章一词在此用于表示计算机程序、文档或从修订控制系统的内容生成的其他内容。]

4

4 回答 4

8

正如 fork0 所说,非线性历史没有这样的等价物,您无论如何都可以执行此操作以获取当前分支的提交数:

git log --oneline | wc -l

这是我的一个队友用来生成要在构建脚本中使用的构建号的方法。

于 2012-09-18T10:40:16.597 回答
3

不,非线性历史没有这样的东西。但是您可能会看到git describe,它的输出将至少满足前两个标准。

于 2012-09-18T10:34:24.593 回答
3

内部版本号的重点是简化获取给定版本的源代码的过程。您可以使用git show -s --pretty=format:%h获取唯一标识版本的 sha1 编号,以便任何开发人员都可以在他的存储库中签出它。

但是,sha1 不是增量数字,在大多数情况下,即使使用其他 VCS 也是不可能的。如果您希望拥有它,那么最好引入一个持续集成系统(例如 Jenkins),它将增量编号并为这些编号创建标签。在这种情况下,它会增长得更温和,因为 CI 通常不会构建每个提交。

此外,提到git describe的在生成良好的版本名称方面做得很好。

于 2012-09-18T11:36:52.190 回答
0

Smudge|clean 过滤器将允许您构建任何ID,YYYYMMDD-N(其中 N 是该日期的提交计数器)可能是不错的选择

于 2012-09-18T23:08:55.427 回答