> For the complete documentation index, see [llms.txt](https://cmmobile.gitbook.io/cmmobilebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cmmobile.gitbook.io/cmmobilebook/git-zhu-ti/git-flow-kai-fa-fang-shi.md).

# Git Flow 開發方式

## 為什麼要有 Git Flow ?

**一**群人共同開發專案，需要一套規則(workflow)才可以讓大家有效率的開發，如果每個人的習慣不同，很容易產生各種問題，而Git Flow只是其中的一套規則。

## Git Flow 的基本規則

Git Flow有主要的分支有 Master、Develop、Hotfix、Release 以及 Feature 這五種分支，Master、Develop屬於長期分支，其他分支會因任務結束而被刪除。

* Ｍaster: 主要放穩定隨時可上線的版本，此分支只能從別的分支合併過來，開發者不能Commit到這個分支，通常會加上版本號標籤。
* Develop & Feature: Develop是所有開發的基礎分支，當要新增功能的時，新增Feature從此分支出去。而分支的功能完成後，也都會合併回來這個分支。
* Release & Hotfix:  測試階段和修正緊急問題用的分支，目前少機率用到。

![](https://695628130-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M9whssVOjkweoAHqONF%2F-M9wj5T1SqL0lvMq6tZm%2F-M9wjx55zqmLBfOotIkV%2Fimage-1591595975977.png?alt=media\&token=21dce6f3-1551-4a30-8cfa-efba3b8af200)

## 操作指南

建立master < ---- 會幫你們弄

再建立branch，並命名為"develop"&#x20;

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FR4sb60io9zT7oDgQx0xe%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%883.53.31.png?alt=media&amp;token=86643acb-530e-4686-9262-1338a1857027" alt=""><figcaption></figcaption></figure>

再建立branch，並命名為"feature/training1"&#x20;

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FL6TTgFT5zmgSLMVmYw3E%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%883.54.58.png?alt=media&amp;token=ee7cd773-875a-4c23-a6c5-cc9d0bf0dd2d" alt=""><figcaption></figcaption></figure>

在新的feature分支，開始建立專案或是修改程式碼等等

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FuwolmDtLir2goTIC8kcg%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%884.07.05.png?alt=media&amp;token=6716a096-10c5-44f2-b1c5-53fa7b82fe6b" alt=""><figcaption><p>一旦有小功能完成，請立即 Commit 並且 Push，請不要一大包功能上傳!!!</p></figcaption></figure>

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FGc7NkS1iHgQSNuXPjenI%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%884.07.57.png?alt=media&amp;token=0aa92a97-20d7-41ac-92af-290c13b0a4fe" alt=""><figcaption><p>一旦有小功能完成，請立即 Commit 並且 Push，請不要一大包功能上傳!!!</p></figcaption></figure>

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FrQJX4gIJjd1a71T3qe4x%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%884.10.09.png?alt=media&amp;token=1b453931-f3aa-40d7-883a-7bca89571648" alt=""><figcaption><p>一旦有小功能完成，請立即 Commit 並且 Push，請不要一大包功能上傳!!!</p></figcaption></figure>

一旦feature完成，例如登入頁完成，找關主驗收功能，然後發 Merge Requests

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FrZPqYRlFzCtaktmHZd5d%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%884.11.41.png?alt=media&amp;token=20b1430d-5669-4b4d-a3ca-b6f87cc4bb3b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2Fi6P2vbauK640U4DqZJA1%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%884.12.39.png?alt=media&amp;token=9fc03c35-ed4a-480e-af2a-90a7a52a1eae" alt=""><figcaption></figcaption></figure>

<figure><img src="https://695628130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M9whssVOjkweoAHqONF%2Fuploads%2FS9hrHj9FNwKnm3xSSRCE%2F%E6%88%AA%E5%9C%96%202023-08-07%20%E4%B8%8B%E5%8D%884.13.08.png?alt=media&amp;token=aba5bc0e-df5c-42a7-959b-69e5cad60e5b" alt=""><figcaption></figcaption></figure>
