GitLab、Git Flow 工作流使用

叛逆點起一根菸發表於2018-06-11

為何要用

在使用svn的時遇到以下問題:

  • 分支建立、合併困難
  • 並行開發版本過多,開發中需求一直變更
  • 無網就哭了,無法做提交
  • 每個分支都是一份完整拷貝,切多個分支小硬碟撐不住

不過,現在我們已經遷移到Git啦。? 當然遷移到Git就要按Git的規範,目前推薦大家以較為成熟的Git Flow的方式來實行程式碼的管理。

Git Flow

Gitflow工作流通過為功能開發、釋出準備和維護分配獨立的分支,讓釋出迭代過程更流暢。 嚴格的分支模型也為大型專案提供了一些非常必要的結構。 Gitflow工作流沒有用超出功能分支工作流的概念和命令, 而是為不同的分支分配一個很明確的角色, 並定義分支之間如何和什麼時候進行互動.

GitLab、Git Flow 工作流使用

  • master:永遠處於準備釋出狀態
  • develop:最新的下次釋出開發狀態
  • release:準備要釋出,從develop遷出,用於修復bug。完成後合併回master及develop
  • hotfix:修復線上緊急bug,從master遷出,完成後合併回master及develop
  • feature:開發新功能,統一由develop遷出,完成後合併回develop

使用

推薦不習慣使用命令列提交的可以使用GUI客戶端SourceTree

1、將工程拉下來後,可以直接使用SourceTree上的Git Flow按鈕來初始化這個功能。一般使用預設的即可。

Git_Flow_Init

2、再次點選Git Flow會讓我們選擇想要建立的分支型別,這邊以開發新功能為例做演示:

Git_Flow_Start

3、我們從develop分支建立一個功能分支test-rxw在feature目錄下,現在對功能分支的程式碼進行開發提交,提交後就可以在Gitlab上看到這條提交資訊。接著點選Create merge request 進行下一步操作。

Git_Flow_Commit

4、在提交分支合併請求頁面填寫相關資訊確認後提交。

Git_Flow_MergeRequest1 Git_Flow_MergeRequest2

5、提交後@相關人就能收到Gitlab的通知,在其主皮膚上就能看到相關的訊息了。稽核人檢視提交資訊確認後直接點選Merge就完成了合併操作,其他人直接在SourceTree上拉取下最新程式碼即可。

Git_Flow_MergeRequest3

建議

  • developmaster分支設定為protect並分配固定的許可權,通過merge request方式來review及合併程式碼
Git_Flow_Protect
  • commit提交記錄細化,每個提交描述清晰,打上對應的標籤。 e.g.【Feature】功能開發【Bugfix】bug修復【Optimize】程式碼優化【Resource】資源更新
Git_Flow_Commit_Log

其中【Bugfix】標籤提交時可補充bug的產生原因解決方案影響範圍及對應禪道的URL,這樣review就可以更快了解這段修改的程式碼,且點選URL可以直達禪道檢視bug描述。

GitLab、Git Flow 工作流使用

相關文章