|
1 | 1 | # Git-Flow 基本教學 :memo: |
2 | 2 |
|
3 | | -在開始要了解 Git-Flow 之前,建議大家先對 Git 有基本的認識, |
| 3 | +在開始要了解 Git-Flow 之前,建議大家先對 Git 有基本的認識, |
4 | 4 |
|
5 | 5 | 可以參考我之前寫的 [Git-Tutorials GIT基本使用教學](https://github.com/twtrubiks/Git-Tutorials) |
6 | 6 |
|
7 | 7 | ## 什麼是 Git-Flow |
8 | 8 |
|
9 | | -在 Git 中有很多指令, 如果你使用 Git-Flow ,會多一些額外的功 |
| 9 | +在 Git 中有很多指令, 如果你使用 Git-Flow ,會多一些額外的功 |
10 | 10 |
|
11 | 11 | 能,但這先功能都只是由基本功能下去組合出來的,講簡單一點 |
12 | 12 |
|
13 | | -,就是 A = B + C + D 的概念 ,當然,也不用擔心需要額外記指令 |
| 13 | +,就是 A = B + C + D 的概念 ,當然,也不用擔心需要額外記指令 |
14 | 14 |
|
15 | 15 | ,有 GUI 介面 ( 有很多套可以使用,我是使用 [SmartGit](http://www.syntevo.com/smartgit/) ) ,而且很方便。 |
16 | 16 |
|
|
26 | 26 |
|
27 | 27 | ## Git-Flow 並不是一個新技術,他只是一個規範 |
28 | 28 |
|
29 | | -很多人第一次看到 Git-Flow 都會想,哇!這個什麼東西阿,好潮 |
| 29 | +很多人第一次看到 Git-Flow 都會想,哇!這個什麼東西阿,好潮 |
30 | 30 |
|
31 | | -哦之類的,但他只是 **一種規範** ,並不是一種新技術,當一整個 |
| 31 | +哦之類的,但他只是 **一種規範** ,並不是一種新技術,當一整個 |
32 | 32 |
|
33 | 33 | 團隊都遵守某一種工作流程,比較不會發生問題。 |
34 | 34 |
|
35 | | -Git-Flow 是訂出來的一種規範,如果你或公司對 Git 非常了解, |
| 35 | +Git-Flow 是訂出來的一種規範,如果你或公司對 Git 非常了解, |
36 | 36 |
|
37 | 37 | 你們也可以自己定義屬於你們自己的 Flow ,不要遵守 Git-Flow , |
38 | 38 |
|
39 | | -是完全不會有衝突的。 |
| 39 | +是完全不會有衝突的。 |
40 | 40 |
|
41 | 41 | ## Git-Flow Model |
42 | 42 |
|
43 | 43 | 在 Git-Flow 中,有兩個主要的分支: |
44 | 44 |
|
45 | 45 | ***Master*** |
46 | 46 |
|
47 | | -這個分支是非常穩定的,任何時刻都是 production-ready ,包含最新的 release ,也就是產品的原始碼,當任何一個人使用你的產品,第一眼看到的都是 master,**我們不能直接在 master 分支上進行任何的 commit ,只能從 Release 或 Hotfix merge 回來**。 |
| 47 | +這個分支是非常穩定的,任何時刻都是 production-ready ,包含最新的 release ,也就是產品的原始碼,當任何一個人使用你的產品,第一眼看到的都是 master,**我們不能直接在 master 分支上進行任何的 commit ,只能從 Release 或 Hotfix merge 回來**。 |
48 | 48 |
|
49 | 49 | ***Develop*** |
50 | 50 |
|
51 | | -開發中的分支,develop 分支是由 mater 分支分出來的,該 ( develop ) 分支提供整合不同即將 release 的 feature ( 功能 ) ,所以該分支有可能不穩定 ( 有bug ) 。通常我們也不會直接在該分支下 commit,而是透過 merge 的方式將 feature ( 功能 ) merge 進來。 |
| 51 | +開發中的分支,develop 分支是由 mater 分支分出來的,該 ( develop ) 分支提供整合不同即將 release 的 feature ( 功能 ) ,所以該分支有可能不穩定 ( 有bug ) 。通常我們也不會直接在該分支下 commit,而是透過 merge 的方式將 feature ( 功能 ) merge 進來。 |
52 | 52 |
|
53 | | -Master 以及 Develop 這兩個分支非常重要,理論上要保護好這兩個分支,避免被意外刪除。 |
| 53 | +Master 以及 Develop 這兩個分支非常重要,理論上要保護好這兩個分支,避免被意外刪除。 |
54 | 54 |
|
55 | | -除了 **Master** 以及 **Develop** 這兩個分支之外,Git-Flow 還提供其他的分支: |
| 55 | +除了 **Master** 以及 **Develop** 這兩個分支之外,Git-Flow 還提供其他的分支: |
56 | 56 |
|
57 | 57 | ***Feature*** |
58 | 58 |
|
59 | | -功能開發,該分支是由 develop 分支分出來的,最後會被合併回 develop 分支。舉個例子,假設目前有 A 和 B 兩個功能經由兩個人下去開發,這兩個人會分別從 develop 分支分 A 和 B 兩個分支出來,當完成後,再 merge 回 develop 。 |
| 59 | +功能開發,該分支是由 develop 分支分出來的,最後會被合併回 develop 分支。舉個例子,假設目前有 A 和 B 兩個功能經由兩個人下去開發,這兩個人會分別從 develop 分支分 A 和 B 兩個分支出來,當完成後,再 merge 回 develop 。 |
60 | 60 |
|
61 | 61 | ***Release*** |
62 | 62 |
|
63 | | -當我們認為 develop 已經是一個很穩定的版本時,我們會進入 release,該分支是由 develop 分支分出來的。通常我們會在該分支底下再做一次全面的測試以及上線前的準備 ( 發佈版本的記錄 ),完成realse 後,我們會 merge 回 master 以及 develop。 |
| 63 | +當我們認為 develop 已經是一個很穩定的版本時,我們會進入 release,該分支是由 develop 分支分出來的。通常我們會在該分支底下再做一次全面的測試以及上線前的準備 ( 發佈版本的記錄 ),完成realse 後,我們會 merge 回 master 以及 develop。 |
64 | 64 |
|
65 | 65 | ***Hotfix*** |
66 | 66 |
|
67 | | -該分支是由 master 分支分出來的,通常是已經上線了,但突然發現一個非常緊急的 bug ,這時候我們就會開一個 Hotfix 出來修復該 bug ,完成後我們會再 merge 回 master 以及 develop。 |
| 67 | +該分支是由 master 分支分出來的,通常是已經上線了,但突然發現一個非常緊急的 bug ,這時候我們就會開一個 Hotfix 出來修復該 bug ,完成後我們會再 merge 回 master 以及 develop。 |
0 commit comments