相当于svnversion的git

时间:2012-09-18 10:29:23

标签: git svn version-control

  

可能重复:
  what is the git equivalent for revision number?

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

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

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

[这里使用的文章用于表示计算机程序,文档或根据修订控制系统的内容生成的其他内容。]

4 个答案:

答案 0 :(得分:8)

正如fork0所说,非线性历史没有这样的等价物,你可以执行此操作来获得当前分支的提交次数:

git log --oneline | wc -l

这是我的团队成员之一用于生成要在构建脚本中使用的内部版本号。

答案 1 :(得分:3)

不,非线性历史没有这样的东西。但是你可能会看git describe,它的输出至少会达到两个第一标准。

答案 2 :(得分:2)

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

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

此外,提到的git describe可以很好地生成良好的版本名称。

答案 3 :(得分:0)

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