Git Flow 提供了幾個主要的分支棍好,每個分支都有其特定的角色和生命周期:
1.main 分支(或 master 分支)
2.develop 分支
3.feature 分支
4.release 分支
5.hotfix 分支
main 分支
?這是項目的主分支,用于保存始終處于可發(fā)布狀態(tài)的代碼。
?每次版本發(fā)布(例如撞芍,v1.0.0匆光、v1.1.0)都會在此分支上創(chuàng)建一個標(biāo)記(Tag)耙箍。
?這個分支的代碼是穩(wěn)定的孽查、可部署的聂受,任何時候都可以將其部署到生產(chǎn)環(huán)境蒿秦。develop 分支
?develop 分支是開發(fā)的核心分支,所有的功能開發(fā)都是基于 develop 分支進(jìn)行的蛋济。
?develop 分支上的代碼是開發(fā)中的棍鳖、可能不穩(wěn)定的,直到完成一次發(fā)布碗旅。feature 分支
?feature 分支用于開發(fā)新功能渡处。每個新功能都會從 develop 分支創(chuàng)建一個新的 feature 分支,功能開發(fā)完成后祟辟,再合并回 develop骂蓖。
?命名約定:feature/xxx(例如 feature/login-page)。
?feature 分支的生命周期較短川尖,通常只存在于新功能開發(fā)階段登下。
# 創(chuàng)建并切換到新的 feature 分支
git checkout -b feature/login-page develop
- release 分支
?release 分支用于準(zhǔn)備一個新版本的發(fā)布。通常叮喳,當(dāng) develop 分支上的功能開發(fā)完成并且已準(zhǔn)備好發(fā)布時被芳,就會創(chuàng)建一個 release 分支。
?在 release 分支上馍悟,開發(fā)者可以進(jìn)行一些版本修復(fù)畔濒、bug 修復(fù)、文檔更新等锣咒,確保發(fā)布版本的穩(wěn)定性侵状。
?發(fā)布分支上的代碼可以做最終測試、集成和調(diào)試毅整,直到一切準(zhǔn)備好趣兄。
?一旦完成 release 分支的修改,它將合并到 main 分支和 develop 分支悼嫉。
# 從 develop 分支創(chuàng)建一個 release 分支
git checkout -b release/1.0.0 develop
- hotfix 分支
?hotfix 分支用于修復(fù)生產(chǎn)環(huán)境中的緊急問題艇潭,通常是部署到 main 分支后發(fā)現(xiàn)的bug。
?hotfix 分支從 main 分支創(chuàng)建,當(dāng)修復(fù)完成后蹋凝,它會合并回 main 和 develop 分支鲁纠。
?hotfix 分支是用于生產(chǎn)環(huán)境的緊急修復(fù),確保修復(fù)后的版本可以迅速推送到生產(chǎn)環(huán)境鳍寂。
# 從 main 分支創(chuàng)建 hotfix 分支
git checkout -b hotfix/1.0.1 main
Git Flow 的基本操作流程
- 開發(fā)新功能(Feature)
?使用 feature 分支開發(fā)新功能時改含,首先從 develop 分支創(chuàng)建一個新的 feature 分支:
git checkout develop
git checkout -b feature/feature-name
開發(fā)完成后,將 feature 分支合并回 develop 分支:
git checkout develop
git merge feature/feature-name
- 發(fā)布新版本(Release)
?當(dāng) develop 分支準(zhǔn)備好發(fā)布時迄汛,創(chuàng)建一個 release 分支
git checkout develop
git checkout -b release/1.0.0
在 release 分支上進(jìn)行最后的修復(fù)和測試捍壤,完成后合并回 main 和 develop 分支:
git checkout main
git merge release/1.0.0
git tag -a v1.0.0 -m "Release version 1.0.0"
git checkout develop
git merge release/1.0.0
- 熱修復(fù)(Hotfix)
?當(dāng)發(fā)現(xiàn)生產(chǎn)環(huán)境中有緊急問題時,從 main 分支創(chuàng)建一個 hotfix 分支:
git checkout main
git checkout -b hotfix/1.0.1
修復(fù)完 bug 后隔心,將 hotfix 分支合并回 main 和 develop 分支:
git checkout main
git merge hotfix/1.0.1
git tag -a v1.0.1 -m "Hotfix version 1.0.1"
git checkout develop
git merge hotfix/1.0.1