--- title: 開發流程 tags: SOP --- [TOC] # 前置閱讀 [Git 實際演練](/1cAZJzaOTCuoB2dRBxpASw) [Git 基礎介紹 +( 安裝](/h66i_zldRg-Jd3lin5mIUA) [開發流程](https://docs.google.com/presentation/d/14rGxeQEsjikBj6H1sHRu_k3wDHpyQqZtLiEK9u2RqZQ/edit#slide=id.gbb5c64c559_2_81) # 開發流程 在製作專案時,大多都是與他人共同協作,當一起開發的人越來越多,以防多人同時合作時,大家都各自照著自己的方式隨便進行,可能會造成合作上的災難,所以需要有一套規則或模式來進行合作。 # 學習重點 每個團隊的開發流程都不盡相同,這篇文章只是用行雲者的開發流程作為範例,不代表每個團隊都是這麼做,所以你要理解的是開發流程的意義。 # 目標 - 了解什麼是開發流程 - 熟悉行雲者開發流程 - 熟悉 Redmine - 熟悉 GitLab # 建立模擬專案 我們會模擬專案有的分支 - Master / Main(正式上線中的服務版本) - Test(測試的版本) - Dev(開發中的版本) - Feature 分支(會從 dev 分支切出來) > git 架構及指令練習可以參考以下文章 ::: info [Git 實際演練](https://hackmd.io/1cAZJzaOTCuoB2dRBxpASw) ::: 首先到本地端上建立一個新專案 先新增一個資料夾 ![](https://i.imgur.com/Pwuo9os.png) 接著進到資料夾內,右鍵開啟 git bash 進行 `git init` 的動作,初始化這個資料夾。 ![](https://i.imgur.com/SBKQLma.png) 再來到資料夾內新增檔案,並加到儲存區 ![](https://i.imgur.com/zvJ5eFO.png) 本地端的建完後,再到遠端建立專案 ![](https://i.imgur.com/kPcJSsw.png) ![](https://i.imgur.com/6K2tzBU.png) ![](https://i.imgur.com/CCfpmpr.png) 建立完成後,把本地端綁定遠端的專案,將指令輸入到 git bash ![](https://i.imgur.com/ZU9sa2q.png) 然後把我們本地端的專案上傳到遠端 ![](https://i.imgur.com/QLAmCqL.png) 成功後我們回到 GitLab 上就會看到以下畫面 ![](https://i.imgur.com/lVwhLgX.png) ## 模擬專案會有 maste 分支、test 分支、dev 分支 從左側的 Respository 底下選到 Branches ![](https://i.imgur.com/LHtynlD.png) 建立新分支 ![](https://i.imgur.com/TZVyIAC.png) 從 master 分支建立新的分支 test 和 dev ![](https://i.imgur.com/HzheJOW.png) 完成後,會有三個分支 ![](https://i.imgur.com/wh0haLE.png) # 模擬被指派了一個新的功能 ## Redmine 建立議題 首先到 Redmine 上建立新議題 ![](https://i.imgur.com/GwM9IOj.png) 新議題範例 ![](https://i.imgur.com/Y16x2zu.png) 每個功能都會有一個編號,定義成 case 號,避免跟 gitlab issue 號混淆 ![](https://i.imgur.com/Mc5cbGY.png) ## Gitlab 開 Issue 議題建立完畢後,到 Gitlab 上開 Issue ![](https://i.imgur.com/v7g3MzA.png) Issue 範例 ![](https://i.imgur.com/eajxEzt.png) 創建功能分支 ![](https://i.imgur.com/Ojid15q.png) ## 到本地端進行開發 先同步遠端分支 :::success 指令:git remote update -p ::: ![](https://i.imgur.com/l59BJjZ.png) 在自己本機開新分支(建議分支名c開頭+redmine case 號) :::success 指令:git checkout `[branch]` -b `[newbranchname]` ::: ![](https://i.imgur.com/O0xZAav.png) 開始開發 ## 開發完成後 開發完成後,儲存到本地儲存庫,commit 訊息複製 Redmine 主旨 ![](https://i.imgur.com/fIi7T0w.png) ![](https://i.imgur.com/2ycpJuB.png) 接著推到遠端的分支上 ![](https://i.imgur.com/3f2TGhB.png) 推完後,到 Gitlab 開 MR (Merge Request) ![](https://i.imgur.com/ZGmE5se.png) 選擇要合併的分支,要合併到哪個分支 ![](https://i.imgur.com/HTJn27f.png) MR 範例 ![](https://i.imgur.com/zMctLs7.png) 開完 MR 後,確認 commit 及修改的檔案是否正確 ![](https://i.imgur.com/JB1EKRx.png) 確認完畢後就可以找人 CR (Code Review) ## CR 沒過的情況 如果你的 CR 沒過,需要再去調整的情況 幫你 CR 的人,會提出哪裡需要修改 ![](https://i.imgur.com/umHjqKV.png) 修改完後,一樣將有改動的檔案 add ![](https://i.imgur.com/x9mwPcc.png) 再來要改寫原本的 commit ,確認內容無虞 就可以儲存離開:wq :::success 指令:git commit --amend ::: ![](https://i.imgur.com/hYbKHGQ.png) 再來強制覆蓋原本的 commit :::success 指令:git push -f ::: ![](https://i.imgur.com/JLNvLRt.png) 如此重覆到你 CR 通過 ## CR 完畢 ![](https://i.imgur.com/zMx6TSg.png)