1 分钟小技巧系列 | 如何快速制作一个易读的 Git 版本号

以前在使用 CSV、SVN 等版本管理软件时,这些版本管理软件都有提供版本编号可以查看。我们由版本编号就可以判断一个文件的新旧,这个特性在 Git 上就有些不同了,Git 是采用 SHA-1 的 Hash 来做版本标识的。如果我们要生成一个易读的数字编号,又应该怎么做呢?

如果要像 CVS、SVN 一样,用数字大小来查看和比较新旧版,我们可以使用下面的方式实现。

1. 方法一

# 用 commit 次数当 version number
$ git rev-list HEAD | wc -l 
12904

2. 方法二

如果要使用 HASH 来当版本编号,可以按下面的方法。

  • 短 Hash 生成方式

短 Hash 生成有下面三种方式,区别在于生成速度不同。

# real 0m0.097s 
$ git describe --always
d5c364b18
# real 0m0.004s
$ git log --pretty="%h" -n1 HEAD 
d5c364b18
# real 0m0.003s
# 短 hash 建议使用这个,速度最快。
$ git rev-parse --short HEAD
d5c364b18
  • 长 Hash 生成方式
$ git rev-parse HEAD
d5c364b18aa9c7542bb4c55c4e36545d03c1985a

最后我们以 PHP 为例,来看下如何抓取版本编号。

<?php
function get_version()
{
    chdir('/var/www/project/');
    exec('git rev-list HEAD | wc -l', $version); // commit 笔数当版本编号
    exec('git rev-parse --short HEAD', $version_short_hash);
    exec('git rev-parse HEAD', $version_full_hash);


    $version['short'] = 'v' . trim($version[0]) . '.' . $version_short_hash[0];
    $version['full']  = 'v' . trim($version[0]) . '.' . $version_full_hash[0];

    return $version;
}

print_r(get_version());
/*
Array
(
 [0] => 12904
 [short] => v12904.d5c364b18
 [full] => v12904.d5c364b18aa9c7542bb4c55c4e36545d03c1985a
)
*/
?>

来源:Tsung's Blog 原文:http://t.cn/Eox0NNe 题图:来自谷歌图片搜索 版权:本文版权归原作者所有 投稿:欢迎投稿,投稿邮箱: editor@hi-linux.com

推荐阅读

原文发布于微信公众号 - 运维之美(Hi-Linux)

原文发表时间:2019-06-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券