以前 CSV、SVN 等等,都有版本編號可以查看,由版本編號就可以判斷新舊,就可以透過程式做一些處理,但是 Git 都是 sha-1 的 Hash,要怎麼做出數字的編號呢?
Git 的版本編號如何製作?
如果要像 CVS、SVN 一樣,用數字大小來查看、比較新舊版,可以使用這種方式:
$ git rev-list HEAD | wc -l # 用 commit 次數當 version number 12904
另外若要使用 hash 來當版本編號,有長短可以選擇
短 Hash (速度比較)
- $ git describe --always # real 0m0.097s d5c364b18
- $ git log --pretty="%h" -n1 HEAD # real 0m0.004s d5c364b18
- $ git rev-parse --short HEAD # 短hash 建議使用這個,速度最快, real 0m0.003s 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
)
*/
?>