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