為何要用
在使用svn的時遇到以下問題:
- 分支建立、合併困難
- 並行開發版本過多,開發中需求一直變更
- 無網就哭了,無法做提交
- 每個分支都是一份完整拷貝,切多個分支小硬碟撐不住
不過,現在我們已經遷移到Git啦。? 當然遷移到Git就要按Git的規範,目前推薦大家以較為成熟的Git Flow的方式來實行程式碼的管理。
Git Flow
Gitflow工作流通過為功能開發、釋出準備和維護分配獨立的分支,讓釋出迭代過程更流暢。 嚴格的分支模型也為大型專案提供了一些非常必要的結構。 Gitflow工作流沒有用超出功能分支工作流的概念和命令, 而是為不同的分支分配一個很明確的角色, 並定義分支之間如何和什麼時候進行互動.
- master:永遠處於準備釋出狀態
- develop:最新的下次釋出開發狀態
- release:準備要釋出,從develop遷出,用於修復bug。完成後合併回master及develop
- hotfix:修復線上緊急bug,從master遷出,完成後合併回master及develop
- feature:開發新功能,統一由develop遷出,完成後合併回develop
使用
推薦不習慣使用命令列提交的可以使用GUI客戶端SourceTree。
1、將工程拉下來後,可以直接使用SourceTree
上的Git Flow
按鈕來初始化這個功能。一般使用預設的即可。
2、再次點選Git Flow
會讓我們選擇想要建立的分支型別,這邊以開發新功能為例做演示:
3、我們從develop分支建立一個功能分支test-rxw在feature目錄下,現在對功能分支的程式碼進行開發提交,提交後就可以在Gitlab上看到這條提交資訊。接著點選Create merge request
進行下一步操作。
4、在提交分支合併請求頁面填寫相關資訊確認後提交。
5、提交後@相關人就能收到Gitlab的通知,在其主皮膚上就能看到相關的訊息了。稽核人檢視提交資訊確認後直接點選Merge
就完成了合併操作,其他人直接在SourceTree
上拉取下最新程式碼即可。
建議
develop
、master
分支設定為protect
並分配固定的許可權,通過merge request
方式來review及合併程式碼
commit
提交記錄細化,每個提交描述清晰,打上對應的標籤。 e.g.【Feature】功能開發
、【Bugfix】bug修復
、【Optimize】程式碼優化
、【Resource】資源更新
其中【Bugfix】標籤提交時可補充bug的產生原因
、解決方案
、影響範圍
及對應禪道的URL
,這樣review就可以更快了解這段修改的程式碼,且點選URL
可以直達禪道檢視bug描述。