iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 27
0
Modern Web

到底要怎麼開始開發網站? --- 從入門到使用Vue, Firebase製作老闆交代的網站系列 第 27

【D27 主委加碼】Git講完了那GitFlow又是甚麼啦?

之前我們在很一開始的地方加碼了一個git的實戰教學~ 後來有一位朋友問我能不能講講gitflow,其實gitflow很簡單,可以說是的一套完整開發流程規定,那麼今天就帶各位了解一下git flow的魅力之處吧

Git Flow是甚麼?

剛剛說到這是一個開發流程規定,不論是大企業小企業也都會常常用到的一套flow~~~

原因在於:

  1. 大家的commit 都不一樣!! 每次不同人去開發同一份專案,常常就會有不同的commit名稱,造成要負責code review的人頭很大XD
  2. 大家branch開完之後會亂merge! 有時候可能不小心有可愛的組員把你的develop 裡面的code給刪掉了或是因為merge conflict而選到不對的版本...

所以有人提出了 https://nvie.com/posts/a-successful-git-branching-model/ 給大家一個開發準則,之後也有許多不同的flow 問世讓大家使用~ 今天我們就單純介紹 Git Flow本人。


一張圖了解Git Flow

這個東西簡單在於其實我們用一張圖就可以解釋了XD
https://gitbook.tw/images/tw/gitflow/why-need-git-flow/flow.png

我們假設今天做的project已經部屬到網路上了,可能在一間公司,這個軟體或網站已經上線給眾多user使用了,那麼你可能會遇到底下情境:

前情提要:
通常一個產品線都會有三個地方給大家開發或測試:

  • local: 自己電腦上的開發
  • Develop: 一個在我們正式發放給user使用之前會先測試的dev 網域 (通常會加密保護)
  • Master: 正式發佈給user使用的網頁
  1. Develop:
    你已經佈署到網路上但是軟體還正在開發當中,可能公司要求你要新加一個功能~ 那接下來你要先在develop裡面開一個feature branch,接下來你就可以盡情開發,結束之後你按下finish,他就會自動匯入到develop branch!

  2. Develop結束了:
    當我們一個feature已經開發的不錯了,也成功匯入到develop了,我們就可以準備release! 在這裡我們會做最後的測試,盡量找出所有的bug,一但都確定好了就可以結束release branch,然後就會把他merge回develop 跟master了!

  3. User說出了一點意外!!!!
    這就是公司最不想遇到的情況,因為可能已經上線到網站遇到了bug,我們就會快速的分支出一個hotfix branch快速修復bug,如果都確定解決了問題我們就可以結束hotfix,他就會自動合併到master~ 同時他也會merge進develop (因為我們現在可能也正在開發些甚麼,問題會是一樣的)


要怎麼使用

我會推薦各位去下載一些Git 的 GUI,這樣可以比較清楚所有的commit, branch 怎麼去動~ 這邊推薦兩個:

  1. Sourcetree (最多人使用)
  2. Git Kraken (要錢,學生可以申請github student pack for free!!)

我適用git kraken~ 大概長這樣:
https://ithelp.ithome.com.tw/upload/images/20200927/20129730eH11AWJgbL.jpg

然後我們可以到右上角點選preference~
https://ithelp.ithome.com.tw/upload/images/20200927/20129730lKWWmIbsHO.jpg

然後就左下角有一個初始git flow:
https://ithelp.ithome.com.tw/upload/images/20200927/20129730g7MamGaxih.jpg

這樣就可以使用了喔! 當然我們也可以直接在terminal下載並且初始化git flow~ 只是就不能欣賞美麗的git 樹了XDXD


Useful Link

  1. npm 裝 git flow: https://www.npmjs.com/package/gitflow
  2. SourceTree git flow: https://blog.sourcetreeapp.com/2012/08/01/smart-branching-with-sourcetree-and-git-flow/
  3. GitKraken git flow: https://support.gitkraken.com/git-workflows-and-extensions/git-flow/
  4. Bitbucket git flow: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

後記

其實git 本身還有很多有趣好玩的東西例如cherry pick, reset, revert等等,希望各位有時間可以慢慢去理解每一個的功能,不然之後去職場亂搞別人的git可是會被白眼的lol
/images/emoticon/emoticon03.gif


上一篇
【D26 - 用Vue實作網頁】從firebase拿資料~ 深入了解database
下一篇
【D28 - 用Vue實作網頁】postman是哪個男人?要怎麼用他(羞)!?
系列文
到底要怎麼開始開發網站? --- 從入門到使用Vue, Firebase製作老闆交代的網站30

尚未有邦友留言

立即登入留言