Git 作爲一個源碼管理系統,不可避免涉及到多人協作。
協作必須有一個規範的工作流程,讓大家有效地合作,使得項目井井有條地發展下去。
Git flow
最早誕生、並得到廣泛採用的一種工作流程,就是Git flow 。
特點
它最主要的特點有兩個。
一、項目存在兩個長期分支
- 主分支master
- 開發分支develop
前者用於存放對外發布的版本,任何時候在這個分支拿到的,都是穩定的分佈版;後者用於日常開發,存放最新的開發版。
二、項目存在三種短期分支
- 功能分支(feature branch)
- 補丁分支(hotfix branch)
- 預發分支(release branch)
一旦完成開發,它們就會被合併進develop或master,然後被刪除。
Git flow的優點是清晰可控,缺點是相對複雜,需要同時維護兩個長期分支。大多數工具都將master當作默認分支,可是開發是在develop分支進行的,這導致經常要切換分支,非常煩人。
更大問題在於,這個模式是基於"版本發佈"的,目標是一段時間以後產出一個新版本。但是,很多網站項目是"持續發佈",代碼一有變動,就部署一次。這時,master分支和develop分支的差別不大,沒必要維護兩個長期分支。