git項目版本控制流程規(guī)范梳理

流程圖

git版本控制

常見的分支

  • 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ā).png

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


開發(fā)2.png

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


開發(fā)3.png

解決沖突

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


開發(fā)4.png

提測fat環(huán)境

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


測試.png

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


測試2.png

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)境一致啦,這是上線前的最后一步,尤為重要,不可忽視。

預生產.png

發(fā)布上生產

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


發(fā)布.png

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


未完待續(xù)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容