iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

我推的Laravel系列 第 26

【Day-25】我推的Laravel-實戰篇-Git/Github flow

  • 分享至 

  • xImage
  •  

簡介

版本控制(英語:revision control),是一軟體工程學問
其中較常聽到git、svn
筆者較多遇到使用git,今天就以git延伸介紹

git

git為分散式版本控制,其延伸出github、gitlab

使用git當然不只版本控制,包括與人協作(撰寫readme)、CI/CD、issue、MR、PR等等

git flow

不論是git flow、github flow、gitlab flow,都是著重於各branch的功能與角色,
如master是正式版本、develop是開發環境等,而不是我今天是這個team的master就隨便推master喔XD

各個flow有各種奇奇怪怪的變異型,取決於你和團隊的合作模式
今天開始我會使用github去做版控

github flow

首先,有些私人企業不喜歡用github,覺得自家的東西放別人家不放心
我都尊重,github可以當作自己練習flow、放自己作品的工具
當然國內外開源程式碼很多也放在github,同時也有很多人在上面contribute
讀者偶爾也可以去github看看別人的開源Code

私人企業有些會自架gitlab,那又是另一段旅程了

flow

讀者這邊分作幾個

  1. master: 正式環境分支
  2. develop: 開發環境分支
  3. feature: 功能開發,可能有數個
  4. deploy: 部屬分支
  5. hotfix: bug修復,可能有數個

以上,視情況增加

實作

首先,如果還沒註冊,到github.com註冊

創建新Repo並將之前的專案上傳,預設主分支為main,改名為master

這裡從master切出feature/init(這裡用Github Desktop)
https://ithelp.ithome.com.tw/upload/images/20231010/20163286zUnxXvcLox.png

並更新readme,然後commit
https://ithelp.ithome.com.tw/upload/images/20231010/20163286aoxZYfDS8m.png

然後到github做PR(下拉可以看差異)
https://ithelp.ithome.com.tw/upload/images/20231010/20163286KIAVryGRgc.png

通常,PR完會由團隊的人Approval、按下確認,這專案只有我一個所以直接按下Merge pull request囉
https://ithelp.ithome.com.tw/upload/images/20231010/20163286RIGz0tO2D6.png

PR完有些設定會自動刪除pull的分支(feature/init),如果有需要則要重新從master拉出新分支
https://ithelp.ithome.com.tw/upload/images/20231010/20163286xe0pe8agPn.png

master的readme更動囉,這樣就有照著我的flow來運作
而多人合作時並不會因為這樣而原本衝突(Conflict)的就自動不衝突了
但如果有需要時可以先PR其中一個然後各自解衝突(雖然還是很麻煩
看團隊想怎麼解吧,或者是盡量不去動用同一區塊等等

總結

Laravel使用git其實並不困難,除了它有自帶的gitignore之外
團隊也可以自己撰寫Readme,將PHP、Laravel版本等,安裝指令訊息寫入
在團隊開發時快速上手

不論你想用git、gitlab、github flow都可以,前提是先了解各分支功用、PR、MR等
相信版本控制可以帶領你和你的團隊開啟新世界


上一篇
【Day-24】我推的Laravel-實戰篇-Login & Laravel Breeze
下一篇
【Day-26】我推的Laravel-實戰篇-Docker
系列文
我推的Laravel31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言