git讀書筆記------(3)git開發流程
來自專欄前端那些事兒
圖一是我司在用的開發模式,也是git推薦的中小型團隊項目協作當中一種開發模式。
最主要的點在於比較清楚的能夠理清整個的開發分支和開發流程,
圖一當中master就是線上的分支,或者說是生產環境的分支,或者叫主幹也行。
hotfix是熱修復環境,啥時候用啥時候checkout一個出來,用完記得及時銷毀,目的是為了保證hotfix分支是和線上完全一致的,主要的作用也是為了臨時的修複線上的錯誤和緊急bug。
develop/prerelease 分支是測試環境分支,所謂測試環境即和線上環境代碼不完全同步,或者說是我們日常開發功能完成之後需要測試的分支,通常來說會領先於線上的分支(因為已經做了某些功能的開發)
feature分支是直接從master分支上拆出來的,一方面是為了保持和線上的同步,一方面也要保持代碼的正確性,保證新開的分支不被污染。
fix分支其實是用來修複測試環境錯誤的,其實fix也可以用來搞成直接從master上拆下來,無傷大雅,不會對測試環境產生很大的影響。
開發流程:
1 從master新開feature分支,然後開始feature分支做開發,然後開發完成之後,合併到develop分支上去,然後開始提測,測試沒問題,可以到hotfix上做線上回歸,或者再開一個其他名字分支做回歸,其實本質上是相同的,都是做線上回歸。
2 需要特別注意的點:
#1 每次合併的時候是feature分支合併到develop分支上,而不是develop合併到feature,因為很可能develop上有別人未開發好的代碼,合併到你的分支上去之後,有一定的可能性是會把,錯誤/未開發好的代碼帶上線的,可以通過上面的那種方式避免這樣低級的錯誤的。
#2 無論在develop分支還是在master都要完成全部的測試,如果實在是某些數據測試環境沒有,那麼線上的時候一定要特別注意的之前在測試環境未驗證的問題,否則極其可能會把本地的錯誤帶上線。
#3 當push遇到問題的時候及時的合併衝突,有時候是不同分支之間的衝突,有時候是同一分支的衝突, 但是都要及時的解決,發測試環境的時候一定要發develop分支,而不是偷懶。
#4 在merge或者push分支之前,先fetch或者pull是一個好習慣(其實是為了防止把別人的代碼覆蓋掉,給別人埋坑)。
推薦閱讀: