前幾天被問了一個問題。我們作業環境有master、uat兩個branch,假設目前需求A完成了,並上到UAT環境給QA測試了,但這時有一個hotfix需求要處理,在這情況下,要先確認那些東西?
Q1:我不太清楚所謂確認東西是啥鬼XD,不就是確認hotfix跟目前上QA的需求有無耦合嗎?但問我問題的人顯然不是想要這個答案
Q2:一般hotfix處理是在master開branch然後完成後merge到master和dev(uat)嗎,不知道各位有其他的方式之類的?
Q1: 先看 uat 跟 hotfix 會不會有衝突吧,不確定的話 uat 先拉一版新的 dev 確保同步到 hotfix 的部分 (問問題的人不想要這個答案,那他想要哪個答案?)
Q2: 大部分是這樣沒錯,至於有沒有其他比較特殊的 flow 就不清楚了
Hotfix 分支
當線上產品發生緊急問題的時候,會從 Master 分支開一個 Hotfix 分支出來進行修復,Hotfix 分支修復完成之後,會合併回 Master 分支,也同時會合併一份到 Develop 分支。
為什麼要合併回 Develop 分支?如果不這麼做,等到時候 Develop 分支完成並且合併回 Master 分支的時候,那個問題就又再次出現了。
那為什麼一開始不從 Develop 分支切出來修?因為 Develop 分支的功能可能尚在開發中,這時候硬是要從這裡切出去修再合併回 Master 分支,只會造成更大的災難。
資料來源:高見龍為你自己學git
原則上 hotfix 只會應用到 master 上。
畢竟,如果是在 develop 上發現問題的。大多只是在原 feature 分支上處理。
如果要從 develop 開 hotfix 。分支會變得非常雜亂。且不容易辨識處理。
當然,這還得依公司或是團隊規定。
海綿寶寶給的是現在一般GIT的標準。