剛接手研發管理工作,發現了很多問題,團隊一直用svn做版本控制器,也僅僅是提交與更新的程度,完全沒有針對線上做程式碼釋出,再就是連一個測試team也沒有,不得不重新組建,為了公司的研發部門能有一個正規的流程,正規的測試,提交,迭代。著手調整了整個開發流程,寫這些東西也只是我的一點兒經驗,有點兒流水感覺,不過簡單易懂,希望能對大家有用。
一、整體採用Git作為版本控制器與釋出
在程式碼版本控制、測試與線上釋出的伺服器架構是這樣的,分為git中心伺服器Git,兩次臺測試機QA1,QA2,線上web;QA1是在本地開發環境中的,QA2是線上測試環境的,最好環境要和web一樣,其次就是所有的開發機。
具體流程是: 所有的開發機都從git伺服器獲取程式碼,同樣提交到git,我們做的是每週升級一次線上,兩級測試,每週工作開始,確定好要釋出的功能之後,分別在 QA1 與 QA2上通過git建立新的一個分支並切換到新的分支上(git fetch origin ....)那麼一週的測試版本就開始了,在整個的這一週工作中,開發人員會陸陸續續的修復和調整程式碼,開發人員的每次提交我們都是以patch的方式,經過審計後,先向QA1上更新此patch,當測試人員測試通過後,再將此patch更新到QA2,如果QA2上測試不通過,繼續讓開發人員修復,再走一次這個流程。
QA1更多的測試的功能、效能、需求和安全等,QA2更多的測試功能是否正常,QA2的測試資料來源與線上web資料一致。
當一週的開發工作完成後,要向線上釋出程式碼時,線上web伺服器只需要通過QA2的本週版本 建立一個新的分支並且秒切到這個新的分支上,這樣線上的程式碼就更新,同時把前面的版本鎖定,不再更新,版本名字最好加上時間。
二、master與develop分支控制
所有開發機都從Git伺服器clone和pull develop分支上的程式碼,提交也同樣提交到develop上,當開發人員提交程式碼後,做程式碼審計的會在git伺服器上做審計,審計完之後,會向master合併程式碼。
Git相比Svn最大的區別是可以本地提交,本地分支,這樣可以給團隊成員分工協作上帶來很多便捷。開發人員在本地開發時,每開發一個新功能或者修復bug時,都需在本地通過develop建立分支並在新分支上開發,當開發完成和本機測試通過後,再merge到develop,並且提交到git伺服器develop上,同時本地刪除建立的這個分支。
記流水賬,不喜勿噴!如需交流可私信!