1. 程式人生 > >git開發流程 公司專案開發流程

git開發流程 公司專案開發流程

1、分支介紹:

永久分支:
master:主分支。用於存放經過測試,完全穩定的程式碼。
dev:開發分支。一開始從master分離而來,用於存放基本穩定的程式碼。
testing:測試分支。從dev分離而來,用於生成測試產品和修改bug。
臨時分支:

feature:特性分支。 從dev分支分離而來,用於開發專案功能。
hotfixes:緊急分支。當產品已經發布,發現緊急bug,建立hotfixes分支進行緊急修復,完成後合併到master和dev。
release:預釋出分支。每次釋出有一個分支。從testing分離而來,用於生成預釋出產品和迴歸測試。

2、工作流程:

每個spring 和 專案建立不同的feature分支。
開發人員基於feature分支進行開發。
開發人員完成功能開發及單元測試後,提交pull request請求。
技術組長稽核pull request並進行code review。 
技術組長進行拒絕或者合併到dev分支。
jenkins自動更新dev程式碼,自動進行sonar檢測,自動構建,將成功或者是失敗資訊通過郵件反饋給開發人員和技術組長。
技術組長將dev合併到testing分支。
jenkins自動更新testing程式碼,自動構建並部署到測試環境,將成功或者是失敗資訊通過郵件反饋給開發人員和技術組長。
jenkins自動進行單元測試,整合測試,系統測試,生成測試報告。
測試人員在測試環境進行手動測試。發現bug及時反饋給開發人員。
開發人員在dev分支及時進行修復。
開發人員修復完成後,提交pull request請求合併到dev。
技術組長稽核pull request並進行code review。 
技術組長進行拒絕或者合併到dev分支。
技術組長將dev合併到testing分支。
測試人員測試通過後,技術組長合併testing到新的release分支。

3. pull request格式要求
pull request的格式要求如下:
標題:【jira任務號】feature或bugfix分支名稱
同一個任務、bug的所有pull request標題要一致。
說明:本次提交的一則說明,包括,但不限於:
本次合併涉及哪些端的pr
本次合併和是否有依賴於別的合併
本次合併是否涉及指令碼稽核
本次合併的功能說明

jenkins自動更新release程式碼,自動構建並部署到預釋出環境,將成功或者是失敗資訊通過郵件反饋給開發人員和技術組長
jenkins自動進行單元測試,整合測試,系統測試,生成測試報告。
測試人員在預釋出環境進行迴歸測試。
測試完成後,技術組長合併release分支到dev分支以及master 分支並在master 分支打上Tag標籤。

運維負責人部署升級資料庫
1.運維負責人拉生產環境新建例項執行SQL指令碼,驗證例項環境網路連線及訪問正常、確認有效升級資料庫,將成功或者是失敗資訊通過微信群QQ群等實時反饋給開發人員和技術組長。
2.技術組長和開發人員驗證SQL指令碼無誤,以及新額資料庫指令碼可以相容舊的程式程式碼無誤,將成功或修正資訊反饋運維負責人。
3.運維負責人執行升級生產環境資料庫SQL指令碼,驗證生產環境網路連線及訪問正常、確認有效升級資料庫,將成功或者是失敗資訊通過微信群QQ群等實時反饋給開發人員和技術組長。

運維負責人拉取release分支,打包,並部署到生產環境,驗證生產環境網路連線及訪問正常、確認有效升級程式,將成功或者是失敗資訊通過微信群QQ群等實時反饋給開發人員和技術組長
測試人員在釋出環境進行冒煙測試。
產品負責人在生產環境進行驗證。
測試完成後,運維負責人釋出版本釋出資訊。
技術組長合併release分支到dev分支以及master 分支並在master 分支打上Tag標籤。