在大型專案中,一定會和他人合作開發,然而每個人 commit 的方式可能不同,就會造成整個專案管理變得很混亂。因此就需要有一套規則或模式,讓大家有一致的共識
提出了流程,也就是Git Flow、Github Flow、Gitlab Flow
由Vincent Driessen在 2010 年提出,是最早提出的一套流程
主要有 master
、develop
、hotfix
、release
、 feature
這五種分支
master
(或 main
)develop
feature
release
hotfix
各分支的用途
master
v1.0.0
develop
feature
feature/login-page
develop
release
develop
切出master
(發佈)以及 develop
(保留修正)hotfix
master
切出,修完再合併回 master
和 develop
圖片來源:https://dev.to/truongpx396/git-flow-overview-and-common-git-commands-1odh
可以看到這個圖,主線就是develop的分支,有新功能要開發或要測試就會從這個分支切出去,做完更新再merge回來
後來 GitHub 提出了一個更簡化的流程,適合持續部署(CI/CD) 的專案
只有一條主要分支(main
或 master
)
main
切一個分支(例如:feature/login
)main
特點:
develop
、release
,就一條 main
搞定融合 Git Flow + Github Flow,主要是為了支援不同的部署環境
特點:
https://ithelp.ithome.com.tw/articles/10281080
https://gitbook.tw/chapters/gitflow/why-need-git-flow
https://dev.to/truongpx396/git-flow-overview-and-common-git-commands-1odh