分支 | 命名 | 說明 |
主分支 | master | 主分支,所有提供給用戶使用的正式版本,都在這個主分支上發佈 |
開發主分支 | dev | 開發分支,永遠是功能最新最全的分支 |
功能分支 | feature-* | 新功能分支,某個功能點正在開發階段 |
發佈版本 | release-* | 發佈定期要上線的功能 |
修復發佈版本分支 | bugfix-release-* | 修復測試bug |
緊急修復分支 | bugfix-master-* |
緊急修復線上代碼的 bug |
主分支 Master
代碼庫應該有一個、且僅有一個主分支。所有提供給用戶使用的正式版本,都在這個主分支上發佈。
主分支必須是可用的、穩定的、可直接發佈的版本,不能直接在主分支上開發。
開發主分支Dev
Master主分支只用來發布重大版本,日常開發應該在另一個分支上完成,我們把開發用的分支,叫做Dev。
這個分支可以用來生成代碼的最新隔夜版本(nightly)。
如果想正式對外發布,就在Master分支上對Dev分支進行合併(merge)。
Dev分支代碼永遠是最新的,所有新功能以這個分支來創建自己的開發分支,該分支只做合併操作,不能直接在該分支上開發。
功能分支Feature
功能分支的名字,可以採用feature-*的形式命名,以自己開發的功能命名。
功能分支是分配開發不同的功能用的,從Dev創建功能分支,然後完成相應功能開發後合併回Dev分支並刪除該功能分支
預發佈分支Release
預發佈分支名字,可以採用release-*的形式命名
預發佈分支是指發佈正式版本之前(即合併到Master分支之前),我們可能需要有一個預發佈的版本進行測試。
預發佈分支是從Dev分支上分出來的,預發佈結束之後(即測試沒有問題之後),必須合併進Dev和Master。
修復預發佈分支Release-bug
修復預發佈分支的bug,可以採用release-bug-*的形式命名
在預發佈版本測試出現bug時,從release分支創建分支進行bug修復,bug修復完成後在合併會release分支
緊急修補分支Bug
修補分支的名字,可以採用bugfix-master-*的形式。
該分支是爲了緊急修復線上的bug。
軟件正式發佈之後,難免會出現bug。這時就需要創建一個分支,進行bug修補。
修補bug分支是從Master分支上面分出來的。修補結束之後,再合併進Master和Dev分支。
儘量避免線上問題的出現
注:一個分支儘量開發一個功能模塊,不要多個功能模塊在一個分支上開發
feature分支申請合併之前,最好先pull一下dev分支下來,看一下有沒有衝突,如果有衝突就先解決衝突後再合併回dev