流程圖

常見的分支
- master:上線分支,每一個版本需要打上一個tag標簽。每一個版本更新的內容可多可細,tag1.2.3,第一位數(shù)字1是系統(tǒng)更新的大版本,數(shù)字2是更新的大功能點,數(shù)字3是可以是優(yōu)化、可以是修復、可以是小功能點。
- develop:開發(fā)分支,是當前項目的可進行測試的最新代碼,每一次開發(fā)人員開發(fā)的新功能、bug、優(yōu)化都需要合并同步更新到develop分支;此分支也是測試同學測試功能的分支。
- 功能A(B/C):功能分支,開發(fā)人員在develop拉出來進行具體功能點開發(fā)的分支。
- bug_fix:修復分支,線上版本出來緊急bug,拉出來的進行修復bug的分支。修復完后需要同步更新代碼到develop分支。
環(huán)境介紹
一般一個項目部署的環(huán)境至少有本地環(huán)境、dev開發(fā)環(huán)境、fat環(huán)境、線上環(huán)境,只是最最基本的幾個環(huán)境。
- 本地環(huán)境:不用介紹了吧這個,你的電腦虛擬機環(huán)境。【可以理解為本地的git版本】
- dev環(huán)境:開發(fā)自測、聯(lián)調的環(huán)境【可以理解為開發(fā)對功能A(B/C)自測的環(huán)境】
- fat環(huán)境:測試用例測試和驗證的環(huán)境【可以理解為develop分支部署,專門做上線前,測試驗證、保證產品這里的測試環(huán)境】
-
線上環(huán)境:給用戶使用的正式環(huán)境【可以理解為master分支部署的環(huán)境】
當然,公司越大、項目越大、業(yè)務鏈路越復雜越長的用于開發(fā)、調試、使用的環(huán)境也就更多??赡軙嘁粋€sit環(huán)境(集成測試環(huán)境)、uat環(huán)境(預發(fā)布環(huán)境)
開發(fā)流程
我們就從新建一個項目開始和整個開發(fā)過程需要學習和熟練的版本控制內容。
正常開發(fā)
在git版本分支管理的過程中,由上圖可知我們按 功能 來拉取不同的分支進行多人開發(fā),假設我們線上已經有一個1.0.1的版本在運行了,在master和develop分支上代碼一致,現(xiàn)在開發(fā)新的需求(功能1),拉取一個新的分支
git checkout develop
git checkout -b func_1
.....陷入思考中并寫好了代碼
git add .
git commit -m "新功能沒有bug"
git push origin func_1
git checkout develop
git merge func_1
git push origin develop

如果你提測完后,測試反饋有些問題需要你修改,你可以這樣。

多人開發(fā)過程中可能某些不知情的小伙伴可能會這樣操作,將develop分支合到自己的分支,在這種情況下除非你的確需要功能1那某部分代碼,不然搞亂的會是你自己。我們最好盡量堅持從功能分支合并到develop提測分支。

解決沖突
像上面那種情況,如果你合并了develop分支代碼,并且手賤(可能吧)的修改了功能1的代碼,哪怕是一個空格回車也好,那也會出現(xiàn)沖突。要知道,你辛辛苦苦寫的代碼,哪知道一合并代碼,還有去解決這煩人的代碼沖突,哪得多傷腦筋啊。

提測fat環(huán)境
當你各個功能(1、2、3...)合并到develop的代碼在開發(fā)環(huán)境(dev環(huán)境)自測,單元測試通過的時候,你就可以選擇拉出一個全新的分支作為提測fat環(huán)境分支,然后測試反饋有問題,可以直接在fat_20200221分支修改或根據(jù)功能點來拉fat_fix分支,這個因項目而異。

不過,當你合并到develop分支的有些功能點還達不到提測要求時,例如:有bug,未自測,趕不上此次版本上線的期限內,可以將已自測完畢滿足提測要求的分支合并到fat_20200221分支進行測試,趕不上此次版本上線的下個版本在上線。

fat環(huán)境相關的部署、配置、環(huán)境準備有測試同學去維護,開發(fā)同學協(xié)助進行修復bug。這要求開發(fā)同學的能力要強,提測給測試同學的功能要充分自測并經過單元測試才可以,要不然看似耽誤的是測試同學的時間,實際上浪費的是整個團隊的時間。
預生產環(huán)境驗證
ok,真不容易啊,測試經過反復測試,終于到了預生產環(huán)境(sit環(huán)境,我司就是拿sit環(huán)境作為生產環(huán)境,uat為正式環(huán)境)發(fā)布環(huán)節(jié)了。說是預生產環(huán)境,那當然在環(huán)境上,配置上要同生產環(huán)境一致啦,這是上線前的最后一步,尤為重要,不可忽視。

發(fā)布上生產
sit驗證 通過后,由項目經理安排、執(zhí)行發(fā)布計劃,并打上標簽。

那么整個流程就差不多講完了,中間有些小坑可能還需要你們踩下才會知道痛哈。
此教程適合剛出來實習還不太明白git版本控制的小伙伴閱讀,大佬們看到有什么疑問歡迎指點下小弟,喜歡點個贊唄,感激不盡。
未完待續(xù)