要了解Flow之前,必須先了解Git,套一句<為你自己學git>教學網站的名言。
這句話講到了Git的核心重點,備份。
Git 是由 Linux 核心的作者 Linus Torvalds 在 2005 年為了管理 Linux 核心程式碼,僅花了 10 天所開發出來的,至目前已有十幾年的歷史了。除了可免費使用外,整個 Git 的原始程式碼也可在網路上取得(當然 Git 的原始程式碼也是用 Git 在做版本控制的)。
如果很多人共同開發一個專案,就會有一個流程出來,不然每個人都有自己的習慣,會容易造成專案開發混亂。
很多人會誤以為 Git Flow 是一種技術,但是他其實只是一種規範,即使你沒有依照這個流程,專案一就是可以運作的。
Git Flow 主要有兩個分支
這個分支是非常穩定的,如果有一個人Clon你的分支,他只會看到這個版本。我們不應該在Master這個版本上Commit。
從Master 分支出來的。是要從 Feature merge回來的,Develop有可能是不穩定的。雖然他是開發中的分支,但是通常不會在這個分支 Commit , 而透過Merge 的方式,從 feature Merge回來。
Master 與 Develop 是非常重要的,理論上要透過一些機制保護好這兩個分支。
是由Develop分支出來的,最後會合併回Develop 的分支。由開發者開發一個功能,會使用該分支,當功能開發完畢後,再 Merge 回 develop。
當我們認為Develop是混䅰定的版本時,會進入Release。該分支是由Develop分支出的,通常我們會在該分支做一個全面的測試,以及上線前的準備。當完成準備後,會將該分支Merge回Develop與Master。Release是一次性的,當Merge回Develop與Master之後,該分支會消失。
是由Master分支出來的。通常專案已經上線了,發現有一個非常緊急的 Bug ,我們會開一個Hotfix 出來,完成後會Merge 回 Hotfix 與 Develop 。