iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0
Modern Web

30 天我與 Vue 的那些二三事系列 第 15

Day 15 -版本控制與git flow

  • 分享至 

  • xImage
  •  

前十四天我們快速看過了Vue的語法以及一些基本概念,今天我們要跳一下來看何謂版本控制與git flow。

我們在開發專案時,常常會需要與別人共同合作,這時候,版本控制就很重要了,因為總不能你要把你改的程式碼交給別人時,打包成一個zip檔,這樣不僅浪費空間,而且別人也不知道你到底改了甚麼。

在版本控制的世界中,有兩大巨頭,第一個是git,其次是svn,在這裡,Grant選擇使用Git作為我們進行版控的工具,相關的git用法,這裡就不再多做贅述囉。

目前的版控系統大多以git為主,例如GitHub、Bitbucket、GitLab等等,這裡我選擇使用Github作為我們儲存程式碼的地方。

除此之外,我們在開發的流程上,最好是導入git flow,因為這將有助於我們維持開發的獨立、簡潔性,而甚麼是git flow呢?

讓我們來看以下這張圖:

在github的repository中,可以被分為許多的branch,這些branch看似獨立,卻又息息相關。

根據 Git Flow 的建議,主要的分支有 master、develop、hotfix、release 以及 feature 這五種分支,a每種分支負責不同的功能。其中 Master 以及 Develop 這兩個分支又被稱做長期分支,因為他們會一直存活在整個 Git Flow 裡,相當重要,而其它的分支大多會因任務結束而被刪除。

https://ithelp.ithome.com.tw/upload/images/20210930/20128925OfmU7kR1Ne.png

接著我們來看看每種分支的功能與特性:

Master 分支

master代表的是整個專案或產品的主線,主要是用來放穩定、隨時可上線的版本(Production Version)。因此,這個分支的來源只能從別的分支合併過來,開發者不會直接 Commit 到這個分支。由於是穩定版本,所以當我們完成了一個版本的釋出,通常也會在這個分支上的 Commit 上打上版本號標籤。

Develop 分支

develop這個分支主要是所有開發的基礎分支,當要新增功能(Feature)的時候,所有的 Feature 分支都是從這個分支切出去的,Feature 分支的功能完成後,也都會合併回來這個分支,開發分支存放的是相對穩定,經過開發者測試後沒問題,但還需要一些時間多做測試的程式碼。

Hotfix 分支

當Production版本的線上產品發生緊急問題的時候,這時候我們會從 Master 分支開一個 Hotfix 分支出來進行修復,意即告訴每個開發者,Production發生問題了!

Hotfix 分支修復完成之後,就會合併回 Master 分支,這時候再將Master的程式碼merge back回去 Develop 分支。

在這裡大家一定有個疑問,那為什麼一開始不從 Develop 分支切出來修?因為 Develop 分支的功能可能尚在開發中,有些功能或許不是那麼穩定,這時候如果硬是要從這裡切出去,只會對線上產品造成更大的災難喔。

Release 分支

當認為 Develop 分支夠成熟了,我們就可以把 Develop 分支合併到 Release 分支,在這邊進行算是上線前的最後測試,通常產品會有不同的環境,Test、Beta、Prod等等,而Release版本的程式碼我們就會將其釋出至Test或Beta版本的環境供user測試。

測試完成後,為了讓程式碼進行同步,Release 分支將會會合併到 Develop 分支中,再將develop merge進master裡。

Feature 分支

當要開始新增功能的時候,就是使用 Feature 分支的時候了。Feature 分支都是從 Develop 分支來的,完成之後會再併回 Develop 分支。

Git flow在軟體工程中,Grant個人覺得滿重要的,因為簡潔的版本控制可以提升合作的效率,間接也能提升工程師們的產能。


Hi, I am Grant.

個人部落格 - https://grantliblog.wordpress.com/
個人網站 - https://grantli-website.netlify.app/#/mainpage
我的寫作專題 - https://vocus.cc/user/5af2e9b5fd89780001822db4#


上一篇
Day 14 - 尋訪其他組件
下一篇
Day 16 - 透過Vuex來管理狀態
系列文
30 天我與 Vue 的那些二三事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言