一、git 分支管理策略
(1)主分支 master
一般情況下,項目所提供給用戶使用的正式版本,都應(yīng)該在這個主分支上發(fā)布。
(2)開發(fā)用分支 dev
功能的集成分支,改分支用于日常開發(fā),迭代功能開發(fā)測試通過之后,如果要正式對外發(fā)布,就將 dev 分支合并到 master 分支。
(3)臨時分支
新的臨時分支從 master 拉取, 保證代碼最新。使用完畢后,需要及時刪除。
臨時分支包括以下兩種:
(3-1)功能分支
作用為開發(fā)某個特定功能,從 dev 分支上分出來,開發(fā)完成后需要再合入 dev 分支。
命名規(guī)范:feature-{功能名稱}-{姓名縮寫},如 feature-deleteRole-LiSi
(3-2)bug 修復(fù)分支
作用為修復(fù)某個線上 bug,從 master 分支上分出來,修復(fù)結(jié)束后再合入 dev 和 master 分支。
命名規(guī)范:hotfix-{功能名稱}-{姓名縮寫},如 hotfix-AddUser-ZhangSan
注:bug 修復(fù)分支需要先 merge origin master 以獲取最新修改。且該類型的分支只能被合并,不能主動合并除了 master 分支之外的分支,以避免誤帶上別的分支
二、分支提交規(guī)則
(1)開發(fā)人員本地分支所做的功能修改,必須完成自測;
(2)如果可以,開發(fā)人員盡量對本地代碼review通過后再進(jìn)行代碼合并;
【附】review規(guī)則:
(a)每一個小的版本迭代完后,就去Review代碼;
三、本地分支管理
(1)本地分支每次修改之前,首先要進(jìn)行 pull 操作;
(2)本地要做到勤提交,比較大的功能模塊要進(jìn)行細(xì)化拆分,分次提交,避免同時提交大量代碼所引發(fā)的代碼沖突;
(3)本地分支在進(jìn)行 merge 操作時,必須將遠(yuǎn)程先 merge 到本地,本地自測完成后,再提交到遠(yuǎn)程倉庫;
四、git提交規(guī)范
(4-1)commit操作要遵循的規(guī)范:
(4-1-1)每次commit 盡量只針對于一件事;
(4-1-2)書寫commit message時要言簡意賅;
(4-1-3)規(guī)范commit message格式;
(4-2)commit 組成
提交信息包括三個部分:Header,Body 和 Footer。
其中,Header 是必需的,Body 和 Footer 可以省略。
(4-2-1)Header格式::
type:用于說明 commit 的類別,如:feat、fix等
(4-2-1-1)type 對應(yīng)的類型說明:
feature:新增功能;
fix:修復(fù)bug;
docs:修改文檔;
refactor:代碼重構(gòu),未新增任何功能和修復(fù)任何bug;
build:改變構(gòu)建流程,新增依賴庫、工具等(例如webpack修改);
chore:非src和test的修改;
test:測試用例的修改;
ci:自動化流程配置修改;
revert:回滾到上一個版本;
feat:完成一些功能
style:樣式修改
perf:一些優(yōu)化重構(gòu)
chore:引入一些第三方庫等
subject:本次commit的簡短描述,以及物動詞開始,15個字內(nèi)
(4-2-2)Body
Body 是對本次 commit 的詳細(xì)描述,可以分成多行。
注意:應(yīng)該說明代碼變動的動機(jī),以及與以前行為的對比。無重大變更,一般不寫。
(4-2-3)Footer(一般不寫)
Footer 一般只用于以下幾種情況
關(guān)聯(lián) Issue(Issue #1, #2, #3)
關(guān)閉 Issue(Close #1, #2, #3)
可用github關(guān)閉issue,或者與自己的任務(wù)相關(guān)聯(lián)
【***** 提交示例:git commit -m “feature:新增用戶注冊” 】
【 提交示例:git commit -m “fix: 修復(fù)角色添加失敗問題” *****】
五、標(biāo)簽使用規(guī)范
(1)主分支每個階段性的發(fā)布操作,都應(yīng)該按需進(jìn)行分支版本切換(如 rerelease-v1.0)或者通過標(biāo)簽來進(jìn)行版本標(biāo)記;
(2)本地每完成一個大的里程碑,打一個標(biāo)簽,標(biāo)簽名稱要含義清晰,
(2-1)標(biāo)簽命名規(guī)則:
采用三段式,v版本.里程碑.序號,如v1.3.1
(a)架構(gòu)升級或架構(gòu)重大調(diào)整,修改第2位
(b)架新功能上線或者模塊大的調(diào)整,修改第2位
(c)架bug修復(fù)上線,修改第3位
六、提交頻率
1、每天下班前已完成的部分必須提交到 dev 分支,并push到遠(yuǎn)程倉庫;
2、臨時分支要盡量按照功能點或修復(fù)重構(gòu)的問題及時commit;
私信666領(lǐng)取資料