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