生產環境hotfix部署流程
針對生產環境釋出新版本後有bug需要緊急修復的情況,協作流程思路:新建對應的hotfix補丁分支,相關開發人員基於hotfix分支進行bug修復,修復完畢驗證無誤後,同樣通過Merge Request合併至主倉庫,然後由hotfix分支構建重新發布至生產。
其中Master成員負責tag和branch的建立,全體相關開發人員基於分支進行開發。詳細流程如下(以JIRA Sprint 31為例,該迭代結束後需要釋出版本R-XYPJ-S-CAMS-0.11.0)
一. Master成員:
1. 迭代結束後生產上線,上線後打tag,tag名:R-XYPJ-S-CAMS-0.11.0,tag
2. 如果生產發現問題需要修復,建立分支B-R-XYPJ-S-CAMS-0.11.0,branch名以“B-”開頭,後面加上JIRA釋出版本,同時在GitLab上將分支設為受保護。例如B-R-XYPJ-S-CAMS-0.11.0,該分支永久存在。
3. 當相關人員程式碼開發修復後,處理Merge Request,基於主倉庫的B-R-XYPJ-S-CAMS-0.11.0分支再次構建釋出新版本,每次釋出生產後,再次打tag,同時tag中小版本號遞增,例如修復若干bug重新發布後,新的tag名為:R-XYPJ-S-CAMS-0.11.1,再修復若干bug重新發布後,新的tag名為R-XYPJ-S-CAMS-0.11.2,以此遞增。
二. 相關開發人員:
1. 明確當前生產環境問題基於哪個branch進行修復, 可詢問Master成員。例如, 當前bug修復分支為:B-R-XYPJ-S-CAMS-0.11.0。
2. 本地執行 git fetch upstream 更新遠端repo的資訊。
3. 本地執行 git branch -a, 檢視所有分支。輸出結果中應該可以看到遠端分支:remotes/upstream/B-R-XYPJ-S-CAMS-0.11.0
4. 本地執行git checkout B-R-XYPJ-S-CAMS-0.11.0,切換至hotfix分支
5. 在 B-R-XYPJ-S-CAMS-0.11.0分支上修改,提交。
6. 本地執行git push origin B-R-XYPJ-S-CAMS-0.11.0,將更改提交至個人倉庫origin。
7. 在Gitlab上發起Merge Request, 從 origin/B-R-XYPJ-S-CAMS-0.11.0 -> upstream/ B-R-XYPJ-S-CAMS-0.11.0
8. 注意必要情況下使用cherry-pick,例如B-R-XYPJ-S-CAMS-0.11.0上修復的內容同時需要合併到master,則:git checkout master,切換到master分支,然後執行 git cherry-pick [commit-id],合併無誤後,push到origin master並提MR到upstream master。反之,如果要同步master上一個commit到B-R-XYPJ-S-CAMS-0.11.0,同樣方法進行操作。
三. 相關命令參考
1. 分支操作
|
2. tag操作
|
3. cherry-pick
|