A successful git branching model 導讀

Preview:

Citation preview

Wen Liao

A successful Git branching model 導讀

高雄,旗山

Disclaimer

投影片資料為作者整理資料及個人意見,沒有經過嚴謹確認,請讀者自行斟酌

目標

導讀 A successful Git branching model的軟體Release方式

URL:http://nvie.com/posts/a-successful-git-branching-model/

背景知識 Fast Forward Merge

簡稱FF

背景知識 Fast Forward Merge in GIT: Before

branch

Master

Branch Head

MasterHead

背景知識 Fast Forward Merge GIT: After

branch

Master

Branch Head

MasterHead

背景知識 非Fast Forward Merge in GIT: Before

branch

Master

Branch Head

MasterHead

背景知識 非Fast Forward Merge GIT: After

branch

Master

Branch Head

MasterHead

merge

為什麼要提FF?

● 可以保留branch更動的footprint

branch

Master

Branch Head

MasterHead

branch Master

Branch Head

MasterHead

mergeVS那一個比較清楚地顯示軟體branch的關聯

性?

作者的Branches 分類

● Main branches○ Master○ Develop

● Supporting branches○ Feature○ Release○ Hotfix

Main Branches Develop Master

branch

mergewhenproduction release

mergewhenproduction release

AKA:integration

Master: 保證product ready 狀態

Develop: ● 隨時為下一次

Release準備● 放

○ Feature○ Fix○ Release更動

■ 版號■ 路徑■ ...

Tag: 版號

Tag: 版號

Feature Branch

● 一定從develop branch出來● 寫完merge 回develop branch● 寫的不如預期可以宰掉● 一定要用NO FF● 可以定相關的branch name convention

Feature Branch: USE NO FF merge

branch

Develop

Branch Head

DevelopHead

merge

Release Branch

● 一定從develop branch出來● 用來處理Release相關事物

○ 改版號○ 改PATH○ ...

Release Branch

● Branch出來,處理Release相關事物中,如果發現錯誤,要merge 回develop branch

● 確認無誤,可以出貨後○ merge回develop和master○ master tag release版號○ 可以宰掉release branch

● 一定要用NO FF● 可以定相關的branch name convention

Release Branch: USE NO FF merge

branch

Develop

Release Head

DevelopHead

Bug fix

merge

merge

Master

MasterHead

Tag with version

Hotfix Branch

● 一定從master branch出來● 用來處理Release後被客戶或是QA抓包的錯

誤● 可以順便進版表示該版本是Fix bug,如1.2晉

升到1.2.1● 修正完畢要merger回master,視情況merge回

develop○ 因為有可能develop已無此功能或是已修正

Hotfix Branch

● 如果舊版正在進行hot fix,而新版release branch也正在進行中,請直接merge到release branch而不是develop branch

● 確認修正後,可以刪除該branch● 一定要用NO FF● 可以定相關的branch name convention

Hotfix Branch: USE NO FF merge

branch

Develop

HotfixHead

DevelopHead

Bug fix

merge

merge

Master

MasterHead

進版Bug fix

Recommended