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