前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1 分钟小技巧系列 | 如何快速制作一个易读的 Git 版本号

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

作者头像
iMike
发布2019-07-01 17:50:32
6380
发布2019-07-01 17:50:32
举报
文章被收录于专栏:运维之美运维之美

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

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

1. 方法一

代码语言:javascript
复制
# 用 commit 次数当 version number
$ git rev-list HEAD | wc -l 
12904

2. 方法二

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

  • 短 Hash 生成方式

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

代码语言:javascript
复制
# 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 生成方式
代码语言:javascript
复制
$ git rev-parse HEAD
d5c364b18aa9c7542bb4c55c4e36545d03c1985a

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

代码语言:javascript
复制
<?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

推荐阅读

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇妙的Linux世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档