今天Bear實驗室的主題不是要介紹程式,而是來好好介紹一下有關管理進度開發的工具!
那今天實驗室的主題是.....Git Flow!!!!
使用 git 的開發者都知道 git 有 branch 這個功能,但要如何運用在開發流程呢?
(以下內容將以Source Tree講解,不知道Source Tree是什麼的請點此連結)
那今天實驗室的主題是.....Git Flow!!!!
使用 git 的開發者都知道 git 有 branch 這個功能,但要如何運用在開發流程呢?
(以下內容將以Source Tree講解,不知道Source Tree是什麼的請點此連結)
什麼是 git flow?
一個Git flow,其中的內容大致可以區分如下:
主要分支
* master:釋出的版本,只從 release 與 hotfix merge 回來,不直接在上面 commit 變更。
* develop:開發中的版本,預設在這 branch 上,開發修改功能都從這分支出去。
支援性分支
* feature branches:從 develop 分支出來,當功能開發修改完成後 merge 回 develop
* release branches:從 develop 分支出來,是準備釋出的版本,只修改版本號與 bug,完成後 merge 回 develop 與 master,並在 master 標上版本號的 tag
* hotfix branches:從 master 分支出來,主要是處理已釋出版本需要立即修改的錯誤,完成後 merge 回 develop 與 master,並在 master 標上版本號的 tag
在本篇教學中,採用 SourceTree 這套 git gui 工具,因為它有整合了git flow的功能,很方便。
如果你超愛指令,但又不想打太多,你可以參考Git-flow 使用笔记安裝git-flow工具操作。
本篇教學範例將以圖說的方式,列出以下步驟,並在部分步驟中列出相對應的指令以供參考:
* 初始化專案的 git flow 設定
* 開發新功能(feature)
* 釋出專案(release)
* 緊急上版(hotfix)
以下教學需要使用到SourceTree,關於SourceTree官方網站請點以下連結
SourceTree下載連結 (Mac, Windows皆適用)
主要分支
* master:釋出的版本,只從 release 與 hotfix merge 回來,不直接在上面 commit 變更。
* develop:開發中的版本,預設在這 branch 上,開發修改功能都從這分支出去。
支援性分支
* feature branches:從 develop 分支出來,當功能開發修改完成後 merge 回 develop
* release branches:從 develop 分支出來,是準備釋出的版本,只修改版本號與 bug,完成後 merge 回 develop 與 master,並在 master 標上版本號的 tag
* hotfix branches:從 master 分支出來,主要是處理已釋出版本需要立即修改的錯誤,完成後 merge 回 develop 與 master,並在 master 標上版本號的 tag
在本篇教學中,採用 SourceTree 這套 git gui 工具,因為它有整合了git flow的功能,很方便。
如果你超愛指令,但又不想打太多,你可以參考Git-flow 使用笔记安裝git-flow工具操作。
本篇教學範例將以圖說的方式,列出以下步驟,並在部分步驟中列出相對應的指令以供參考:
* 初始化專案的 git flow 設定
* 開發新功能(feature)
* 釋出專案(release)
* 緊急上版(hotfix)
以下教學需要使用到SourceTree,關於SourceTree官方網站請點以下連結
SourceTree下載連結 (Mac, Windows皆適用)
初始化專案的 git flow 設定
參考指令:
1 |
git
checkout -b develop master |
開發新功能(feature)
參考指令:
1 |
git checkout -b
feature/f1 develop |
這邊我們隨意建了一個新檔案叫做main.c!
參考指令:
123 |
git checkout
develop
git merge --no-ff
feature/f1
git branch -d
feature/f1 |
釋出專案(release)
當功能都開發完成之後,就可以進行準備釋出專案,在這 release branch
上做的動作主要就是修改版本號之類的釋出設定。
釋出專案的話,就代表你開發完成了要出去給測試或是準備上架囉!!
釋出專案的話,就代表你開發完成了要出去給測試或是準備上架囉!!
參考指令:
1 |
git checkout -b
release/v0.1.0 develop |
(畫面中使用的是 Mou Markdown 編輯器, 在Mac上編輯README相當好用,
有機會Bear再詳加介紹)
參考指令:
123456789 |
git checkout
master
git merge --no-ff
release/v0.1.0
git tag -a
v0.1.0
git checkout
develop
git merge --no-ff
release/v0.1.0
git branch -d
release/v0.1.0 |
經由以上步驟,我們就學會了依照 Git Flow 從開發到釋出的流程。
緊急上版(hotfix)
當專案釋出之後,可能才發現有重大的錯誤,
但一時之間新功能也正在開發,無法及時釋出新版本.....
這時候可以從 master 分支出 hotfix branch 做緊急上版。
但一時之間新功能也正在開發,無法及時釋出新版本.....
這時候可以從 master 分支出 hotfix branch 做緊急上版。
參考指令:
1 |
git checkout -b
hotfix/v0.1.1 master |
參考指令:
123456789 |
git checkout
master
git merge --no-ff
hotfix/v0.1.1
git tag -a
v0.1.1
git checkout
develop
git merge --no-ff
-b hotfix/v0.1.1
git branch -d
hotfix/v0.1.1 |
以上就是在 SourceTree 使用 Git flow 開發流程的方式。
最後如果希望下載SourceTree的,請點此處下載
想了解SourceTree是什麼的,請參考Takobear: SourceTree簡介一文
最後如果希望下載SourceTree的,請點此處下載
想了解SourceTree是什麼的,請參考Takobear: SourceTree簡介一文
參考網站:
A successful Git branching model
Git flow 開發流程
Git-flow 使用笔记
Git 版本控制 branch model 分支模組基本介紹