問題的提出
不管是什么版本管理工具,每一條提交記錄都會有一個對應(yīng)的版本號,一般是一個整數(shù),git是一個hash字符串。不管怎樣,這個版本號是唯一的,有時候我們在程序運行的時候會在日志里面輸出程序的版本號,或者在命令行運行的時候在控制臺中輸出當(dāng)前程序的版本號。一般而言,如果我們程序輸出的版本號,與版本控制系統(tǒng)源碼對應(yīng)的版本號有關(guān)聯(lián)關(guān)系是最好不過的,這樣當(dāng)運行的程序出現(xiàn)問題的時候,可以通過程序的版本號,去源碼的版本控制系統(tǒng)中找到對應(yīng)的源碼進行分析,也就是說我們知道當(dāng)前運行的程序?qū)?yīng)在版本控制系統(tǒng)中的源碼。
通過git命令得到版本號
這里的使用環(huán)境是linux,我們的源碼客戶端是git,通過git命令我們可以得到當(dāng)前最新版本庫中的源碼版本,使用git log 命令的格式化輸出,可以得到每次提交結(jié)果中的各個部分,例如版本號,提交時間,提交日志。git log 命令默認(rèn)情況下會輸出所有提交記錄的詳細信息,通過使用其提供的--pretty選項我們可以指定git log 輸出我們需要的部分,例如代表版本號的hash字符串部分。
git log --pretty=format:"%H"
輸出:
082472d159a9ccd72fe241319d120b1a3dd87283
59ab0468389b511d0949aaef4e5324277e1899ce
134cb39bbb64b203b146626776a56037bccb469f
395db26c60e2f354