Git Flow
於 2010 年提出的開發流程觀念
,往後還有其他諸如 GitHub Flow
、Gitlab Flow
,而這些流程的最終目的都是 讓專案變得更好維護管理
分支介紹
主要會有 main
、develop
、hotfix
、release
以及 feature
,除了 main
、develop
兩個以外,其餘都會因為完成該分支任務後就被刪除,而這兩個又被稱為長期分支,一直會保存在整份版控內。
以下將介紹各分支的主要負責範疇:
main (原為 master,於 2020/10變更)
master更名成main
主要為穩定、上線的版本,分支來源僅能從其他分支合併過來,不該允許開發者直接commit
到main
分支。一般在專案初期環境建好後都會拉出develop
分支出去,並維持 main 分支獨立性。develop
為所有開發分支的基礎,也就是說當新增/修改功能的時候,都由此分支切出去,而完成之後會合併於此分支hotfix
當線上版本發生緊急問題需要修復的時候,會由main
切出一個hotfix
分支修復進級問題,修復完成後也會合併回main
分支,但也記得要合併到 develop 分支。
由於 develop 可能還在開發中,所以一開始並不會從 develop 切出hotfix
分支,避免在合併到main
分支時出現更嚴重問題。feature
當需要開發新功能時,會從 develop 切出feature
分支,並且在分支命名上會採用feature/功能名稱
的形式,是由於若只使用feature
作為分支名稱,會讓其他團隊成員無法開feature/功能名稱
的分支,這是 Git 開分支原則所導致的。release
由 develop 切出來,是當仗勢上線前的最終測試分支,測試通過後會將release
合併到main
以及develop
,以確保在release
時有修正一些問題能同步到main
develop
。
Git Commit 規範
Commit 的 type
feat
- 新增/修改功能fix
- 修正 Bugdocs
- 修改/新增文件style
- 修改程式碼格式或風格,不影響原有運作,ex: ESLint、stylelint..etcrefactor
- 重構 or 優化,不屬於 bug 也不屬於新增功能等test
- 增加測試功能chore
- 增加或修改第三方套件等
必須將以往執行 git commit -m 'xxxx'
方式改成 git commit
,會出現 vi編輯器
,隨後開始編輯([i]鍵),完成後則結束編輯([:] 鍵),最後輸入 wq
(儲存[q]、編輯[q]),就會上傳 Commit。