windows環(huán)境下的Git版本控制工具使用說(shuō)明和規(guī)范。
目錄
1 Git的安裝與使用
2 Git的使用規(guī)范
3 工欲善其事必先利其器
1、Git的安裝與使用
1.1 前言
Git 是Linux 開(kāi)源社區(qū)為L(zhǎng)inux的開(kāi)發(fā)與維護(hù)而開(kāi)發(fā)的一個(gè)項(xiàng)目,目前已被廣泛應(yīng)用,關(guān)于版本控制工具各有特點(diǎn),本部門全部使用git,軟件開(kāi)發(fā)前必須熟練掌握git的使用,以及遵守相應(yīng)操作規(guī)范。
1.2 安裝
初次接觸Git的用戶,請(qǐng)抽出幾分鐘時(shí)間看一下https://git-scm.com/docs 的介紹文檔,相信磨刀不誤砍柴工。
Git 地址:https://git-scm.com/downloads
服務(wù)器端已經(jīng)安裝在內(nèi)網(wǎng)服務(wù)器,本文針對(duì)Window平臺(tái)的Git客戶端的安裝和使用。
1、安裝TortoiseGit-2.5.0.0-64bit.msi 一路下一步,這只是安裝了git的內(nèi)核功能,要在windows下操作,需要安裝界面外殼。
2、安裝GitExtensions-2.50.02-SetupComplete.msi 或者 Git-2.15.0-64-bit.exe,這是兩種風(fēng)格的界面,主體功能差不多,個(gè)人選擇的是后者,也可以兩個(gè)都安裝。
3、安裝過(guò)程中出現(xiàn)較多的配置,所有選項(xiàng)中,全部都選帶windows關(guān)鍵字的,否則用起來(lái)看不出問(wèn)題,但是保存的記錄異常。既然是界面操作,就開(kāi)啟鼠標(biāo)右鍵的快捷圖標(biāo)。
后續(xù)一些安裝選項(xiàng),全部選帶windows關(guān)鍵字的。
4、安裝完成后,鼠標(biāo)右鍵,會(huì)出現(xiàn) Git GUI Here。
5、如果是新手可安裝漢化補(bǔ)丁TortoiseGit-LanguagePack-2.5.0.0-64bit-zh_CN.msi。
1.3 基礎(chǔ)演示
1、配置
其中用戶名必須使用自己名字的全拼,不要使用簡(jiǎn)寫(xiě)或者其他特殊字符,以方便后期檢索跟蹤修改記錄。
2、創(chuàng)建本地版本庫(kù),git creat repository here,默認(rèn)操作,即可創(chuàng)建版本,會(huì)在test空文件夾下生成.git 。
3、在test下隨便改動(dòng),如新加123.txt,提交改動(dòng)。此時(shí)鼠標(biāo)右鍵效果如下:
4、編輯本次修改記錄 修改記錄必須簡(jiǎn)潔清晰,具體規(guī)范參考下一章。
5、保存本次修改后,使用Git GUI Here->Repository->Visualize master’s History查看全部版本記錄。
6、提交到遠(yuǎn)程服務(wù)器
7、同步遠(yuǎn)程分支
有時(shí)候提示提交推送失敗,先確定是否服務(wù)器有新節(jié)點(diǎn),先同步、合并(rebase)后再提交。
8、分支合并
一般選擇rebase,但其實(shí)它有缺點(diǎn)。特別提醒,進(jìn)行reabse前先將當(dāng)前分支新加分支名,以防操作失敗,節(jié)點(diǎn)錯(cuò)亂導(dǎo)致當(dāng)前節(jié)點(diǎn)消失。合并后必須先編譯驗(yàn)證了再提交。
9、通用配置和常用功能
1.4 總結(jié)
Git的使用尤其是多人合作,注意以下幾點(diǎn):
1、推送服務(wù)器前先同步;
2、兩個(gè)分支版本有沖突,先rebase解決,不熟練的情況下暫時(shí)不要使用merge;
3、版本節(jié)點(diǎn)不能使用中文,修改描述可以,關(guān)于修改描述的規(guī)范見(jiàn)下一章;
4、編譯自動(dòng)生成的臨時(shí)文件不要提交,可以使用TortoiseGit–>Delete and add in ignore list,可過(guò)濾指定的文件,即使有改動(dòng)也不提交;
5、Git自帶的比較工具比較差,可以配置使用外部比較工具。
一共三處,將Diff viewer和Merge Tool改為HA-BCompare。
這個(gè)工具的比較功能強(qiáng)大,顯示界面清晰。
2、Git的使用規(guī)范
1.1 用戶名
為保證問(wèn)題跟蹤方便,歷史修改記錄溯源,首次提交前必須設(shè)置用戶名和郵箱,尤其是用戶名,必須使用自己名字的小寫(xiě)全拼,不得使用簡(jiǎn)稱或者特殊代號(hào)。
1.2 分支名
- 功能接近的項(xiàng)目,盡量使用功能宏或者項(xiàng)目宏,從軟件源碼上減少分支;分支名稱使用大寫(xiě)字母和下劃線,不能包含空格或中文;臨時(shí)測(cè)試或驗(yàn)證某個(gè)功能的分支,必須以TEST_開(kāi)頭,驗(yàn)證無(wú)誤,且應(yīng)用到正式項(xiàng)目后,最好刪除遠(yuǎn)程分支;某個(gè)版本基礎(chǔ)上小改動(dòng),為解決生產(chǎn)或者客戶問(wèn)題的版本,必須以PATCH_開(kāi)頭,表示當(dāng)前分支只是特殊情況下使用,后續(xù)正式版本不再繼續(xù)維護(hù)升級(jí);因?yàn)樾枨笞兏?,原XXX項(xiàng)目不得不分成2個(gè)分支,分支命名為XXX_AA和XXX_BB,其中AA和BB是兩個(gè)分支的主要區(qū)別關(guān)鍵字,前面一樣,表示兩分支原屬于同一個(gè)分支節(jié)點(diǎn);若后續(xù)XXX_BB繼續(xù)拆分,則新分支為XXX_BB_CC和XXX_BB_DD,依次類推;禁止使用XXX1 XXX2 XXX3 這種分支名,禁止設(shè)分支名為master。個(gè)人測(cè)試或者reabse前的遠(yuǎn)程分支,原作者確認(rèn)已經(jīng)不再需要的,必須刪除遠(yuǎn)程分支,簡(jiǎn)化版本分支樹(shù)形結(jié)構(gòu)。
1.3 注釋
修改記錄規(guī)范化是本文的重點(diǎn),注釋按如下格式編寫(xiě):
[type] message
每行內(nèi)容不超過(guò)50字, type 用于指定提交的 commit 的類別,只允許以下幾個(gè)動(dòng)詞原語(yǔ):
release 發(fā)布軟件時(shí)使必須有,且在第一行,后面內(nèi)容是版本號(hào)
add 新增加的功能
fix 修復(fù)某個(gè) bug 的描述
update 升級(jí)完善原有的基礎(chǔ)功能上
change 需求變更或者實(shí)現(xiàn)的方案改變
docs 更新文檔
test 增加/修改測(cè)試示例代碼
merge/rebase在解決代碼沖突,合并分支時(shí)使用
create 初次創(chuàng)建新項(xiàng)目時(shí)使用
remove 刪減代碼時(shí)使用
patch 集成合并SDK補(bǔ)丁
message 用于指定提交的描述文字,需要注意幾個(gè)事項(xiàng)。
1、使用中文表述,描述簡(jiǎn)潔,抓住重點(diǎn),尤其對(duì)修復(fù)的問(wèn)題點(diǎn)
2、盡量以動(dòng)詞開(kāi)頭,如:更新,增加,修復(fù)等
3、特別復(fù)雜的功能或流程,可描述參考某文檔,并更新上傳說(shuō)明文檔,
正確的示例:
[release] 發(fā)布V1.0.0_2021
[fix] 修復(fù)登錄框顯示陰影的問(wèn)題
[update] 優(yōu)化RFID卡信息讀取的驅(qū)動(dòng)
[test] 添加解碼GNSS測(cè)試功能
[remove] 刪除多余的提示框界面相關(guān)代碼
錯(cuò)誤的示例:
[fix] 修復(fù)一個(gè)大 BUG //具體是什么問(wèn)題?
添加聯(lián)網(wǎng)模塊 //沒(méi)有 type [add]
[add] 更新 API 文檔接口說(shuō)明 // type錯(cuò)誤,應(yīng)該是[doc]
[release] V1.0_20210220 // release必須在第一行
3、工欲善其事必先利其器
工欲善其事必先利其器,工具的熟練掌握、合理利用,修改記錄保存完整,后期檢索跟蹤問(wèn)題,以及多項(xiàng)目軟件切換合并才能簡(jiǎn)單易操作,才能保證代碼的質(zhì)量。