就像寫代碼需要代碼規(guī)范一樣龟虎,代碼管理同樣需要一個(gè)清晰的流程和規(guī)范竖席,Gitflow就是現(xiàn)在通用的一個(gè)代碼管理流程規(guī)范系谐。具體可見https://nvie.com/posts/a-successful-git-branching-model/
- master主分支:
負(fù)責(zé)記錄上線版本的迭代度宦,該分支代碼與線上代碼是完全一致的梦裂。
- develop開發(fā)分支:
該分支記錄相對(duì)穩(wěn)定的版本,所有的feature分支都從該分支創(chuàng)建
- feature/* 特性(功能)分支:
用于開發(fā)新的功能溯警,不同的功能創(chuàng)建不同的功能分支趣苏,功能分支開發(fā)完成并自測(cè)通過之后,需要合并到 develop 分支梯轻。
- release/*發(fā)布分支:
用于代碼上線準(zhǔn)備食磕,該分支從develop分支創(chuàng)建,創(chuàng)建之后由測(cè)試發(fā)布到測(cè)試環(huán)境進(jìn)行測(cè)試喳挑,測(cè)試過程中發(fā)現(xiàn)bug需要開發(fā)人員在該release分支上進(jìn)行bug修復(fù)彬伦,所有bug修復(fù)完后,在上線之前伊诵,需要合并該release分支到master分支和develop分支单绑。
- bugfix/* bug修復(fù)分支:
用于修復(fù)不緊急的bug,普通bug均需要?jiǎng)?chuàng)建bugfix分支開發(fā)曹宴,開發(fā)完成自測(cè)沒問題后合并到 develop 分支后询张,刪除該分支。
- hotfix/*緊急bug修復(fù)分支:
該分支只有在緊急情況下使用浙炼,從master分支創(chuàng)建,用于緊急修復(fù)線上bug唯袄,修復(fù)完成后弯屈,需要合并該分支到master分支以便上線,同時(shí)需要再合并到develop分支恋拷。
一资厉、準(zhǔn)備階段
1. 初始化遠(yuǎn)程工作區(qū)和共享版本庫(kù)
git init --bare
2. 項(xiàng)目經(jīng)理初始化項(xiàng)目, 并在master定制標(biāo)記
添加初始化文件
git add .
git commit -m
git push
git tag v0.1
git push origin v0.1
3. 項(xiàng)目經(jīng)理基于master分支創(chuàng)建develop分支
git switch master
git branch Develop
git switch Develop
git push
4. 項(xiàng)目經(jīng)理給開發(fā)人員分配工作任務(wù)
二、開發(fā)階段
1. 開發(fā)人員基于develop分支創(chuàng)建功能分支
git branch feature/home
git switch feature/login
2. 開發(fā)人員在自己的分支上add commit push
3. 開發(fā)完成告訴項(xiàng)目經(jīng)理, 由項(xiàng)目經(jīng)理審核代碼并合并代碼到develop
git pull
git switch feature/home 檢查代碼
git switch Develop
git merge feature/home
git switch feature/login 檢查代碼
git switch Develop
git merge feature/login
三蔬顾、準(zhǔn)備上線階段
1. 項(xiàng)目經(jīng)理基于develop分支創(chuàng)建release分支
git switch Develop
git branch Release/v1.0
2. 測(cè)試人員獲取release分支代碼進(jìn)行測(cè)試
3. 發(fā)現(xiàn)bug由開發(fā)人員基于release分支創(chuàng)建bugfix分支進(jìn)行修復(fù)
git pull
git switch Release/v1.0
git branch bugfix/issue32
修復(fù)bug / add / commit
4. 修復(fù)完成后重新合并到release分支
git switch Release/v1.0
git merge bugfix/issue32
git push
5. 將測(cè)試和修復(fù)完所有bug的最終代碼合并到master分支和develop分支
git switch Develop
git merge Release/v1.0
git switch master
git merge Release/v1.0
四宴偿、項(xiàng)目上線
1. 項(xiàng)目經(jīng)理在master分支定制標(biāo)記
git switch master
git tag -a v1.0 -m"項(xiàng)目第一次上線"
2. 項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理將標(biāo)記提交到遠(yuǎn)程服務(wù)器
git push origin v1.0
五、上線之后
1. 項(xiàng)目上線后發(fā)現(xiàn)緊急bug
2. 基于master分支創(chuàng)建hotfix分支, 在該分支上修復(fù)bug
git switch master
git branch hotfix/issue66
修復(fù)bug / add / commit
3. 修復(fù)完成后重新合并到master分支和develop分支
git switch Develop
git merge hotfix/issue66
4. 項(xiàng)目經(jīng)理重新在master分支定制標(biāo)記
git switch master
git merge hotfix/issue66
git tag v1.1
git push origin v1.1