今天Bear實驗室的主題不是要介紹程式,而是來好好介紹一下有關管理進度開發的工具! 那今天實驗室的主題是.....Git Flow!!!! 使用 git 的開發者都知道 git 有 branch 這個功能,但要如何運用在開發流程呢? (以下內容將以Source Tree講解,不知道Source Tree是什麼的請點此連結) 什麼是 git flow?一個Git flow,其中的內容大致可以區分如下: 主要分支 支援性分支 在本篇教學中,採用 SourceTree 這套 git gui 工具,因為它有整合了git flow的功能,很方便。 本篇教學範例將以圖說的方式,列出以下步驟,並在部分步驟中列出相對應的指令以供參考: 以下教學需要使用到SourceTree,關於SourceTree官方網站請點以下連結 初始化專案的 git flow 設定執行 SourceTree 點擊 Add Repository。 因為我們是建立一個新的空目錄,所以切換到 Create Repository頁面,輸入資訊後點擊 Create。 雙擊剛剛建立的 Repository。 因為整個專案都是空的,所以我們需要 commit 一次,以建立 master branch。 先在專案目錄下新增一個文字檔。 在 Working Copy頁面中,選取剛剛放進專案目錄中的文字檔,點擊 Add。 檔案就會從下方移到上方,準備 commit。接著點擊 Commit。 輸入 Commit message 後,點擊 Commit。 Commit 之後就可以看到 BRANCHES 下多出了 master。接下來就可以點擊 Git Flow 為專案初始化 git flow設定。 基本上不用再調什麼設定,直接點擊 OK。 參考指令:
完成後就會看到在 BRANCHES 下出現 develop 了,這樣就完成了 git flow 的初始化。 開發新功能(feature)點擊 Git flow 開啟選單。 點擊 Start a New Feature。 輸入Feature Name,然後點擊 OK,建立新的 branch 用來開發新功能。 參考指令:
在 BRANCHES 下可以看到新增了 feature/f1 這個 branch,我們在這 branch 上開發新功能。 在專案目錄下新增一檔案,用來代表新功能,接下來就是老樣子的 commmit 動作。 這邊我們隨意建了一個新檔案叫做main.c! 在 Working Copy頁面中,選取剛剛放進專案目錄中的檔案,點擊 Add。 檔案就會從下方移到上方,準備 commit。接著點擊 Commit。 輸入 Commit message 後,點擊 Commit。 回到 BRANCHES,因為新功能完成了,所以我們要將 feature/f1 merge 回 develop。點擊 Git Flow 叫出選單。 因為目前我們在 feature/f1 上,所以點擊 Finish Current就可以了。 這邊直接點擊 OK。 參考指令:
回到只有 develop 與 master 兩個 branch 的狀態了。重複以上動作直到功能開發完成,就要進行下一個步驟,釋出專案給使用者。 釋出專案(release)當功能都開發完成之後,就可以進行準備釋出專案,在這 release branch 上做的動作主要就是修改版本號之類的釋出設定。 釋出專案的話,就代表你開發完成了要出去給測試或是準備上架囉!! 點擊 Git Flow。 點擊 Start a New Release。 輸入版本號,點擊 OK(預設是從 develop 最新的版本分支)。 參考指令:
在 BRANCHES 下可以看到出現了 release/v0.1.0 的 branch。 現在讓我們修改一下專案目錄下的 README.md 的內容,加上版本號資訊後存檔。 (畫面中使用的是 Mou Markdown 編輯器, 在Mac上編輯README相當好用, 有機會Bear再詳加介紹) 接下來 commit 剛剛的變更,一樣切換到 Working Copy 頁面,選取變更的檔案,點擊 Add。 點擊 Commit。 輸入 Commit message 後點擊 Commit。 回到 BRANCHES 頁面,可以看到 Graph 有變動了。接下來請點擊 Git Flow。 因為目前我們正在 release/v0.1.0 branch,所以直接點擊 Finish Current。 點擊 OK。請注意在 Git Flow 流程中,release branch 只負責釋出設定與修正 bug,千萬不要在上面開發新功能。 參考指令:
Graph 就會出現了變更,release/v0.1.0 會 merge 到 master 跟 develop。並在 master 上標上 v0.1.0 的 tag。 經由以上步驟,我們就學會了依照 Git Flow 從開發到釋出的流程。 緊急上版(hotfix)當專案釋出之後,可能才發現有重大的錯誤, 但一時之間新功能也正在開發,無法及時釋出新版本..... 這時候可以從 master 分支出 hotfix branch 做緊急上版。 假設目前專案正在進行新功能的開發,如上圖所示,但突然發現版本v0.1.0有錯誤需要馬上修改。請點擊 Git Flow。 因為目前我們在正 feature/f2 branch上,所以我們點擊 Other Action…開啟選單。 點擊 Start Hotfix。 輸入版本號,因為目前我們要修正的版本是v0.1.0,所以按照慣例這裡輸入v0.1.1。點擊 OK。 參考指令:
可以看到 Graph 發生了變動,hotfix/v0.1.1是從 master 分支出來的,接下來就可以修正錯誤,這邊就不再重複講述 commmit 的步驟。 錯誤已經修復好也 commit 了,接下來就是釋出更新的版本。請點擊 Git Flow。 因為目前我們就在 hotfix/v0.1.1上,所以直接點擊 Finish Current。 點擊 OK。 參考指令:
可以在 Graph 中看到了變更,hotfix/v0.1.1 會 merge 到 master 跟 develop。並在 master 上標上 v0.1.1 的 tag。之後再切換到 feature/f2 繼續開發新功能。 以上就是在 SourceTree 使用 Git flow 開發流程的方式。 |