Git 的版本編號如何製作?

以前 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
)
*/
?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料