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

640?wx_fmt=png


以前在使用 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

640?wx_fmt=gif


今日思想

活下去的诀窍是:保持愚蠢,又不能知道自己有多蠢。


—— 王小波


640?wx_fmt=gif


推荐阅读


640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值