後端技術考古題-開發工具 中篇

更新於 發佈於 閱讀時間約 5 分鐘

※ 主題關鍵字

  • Git flow:
raw-image


說明:

  1. Git Flow 是一種基於 Git 版本控制系統的擴展,用於協助團隊進行項目的軟體開發和版本管理,就流程來說屬於概括性的流程
  2. 這種工作流程定義了一組明確的分支模型,以協助有效地進行功能開發、修復錯誤和發布版本。
  3. Git Flow 可以針對不同的開發環境建置不同的測試或正式版本。
  4. 在Git Flow流程下,不同開發者可以同時開發不同功能,或者同時一起開發一個大功能。當開發和發佈同時進行時,彼此將不受影響。因此整個開發過程中,會有良好的共同程式開發和版本控制協作流程。
  5. 透過Git Flow所創造出一個具統一性、受規範、自動化(搭配 CI/CD)的開發流程,可以減少人為犯錯的風險、同時提升效率。

Git Flow五種分支的介紹:

  • 兩個長期存在的分支,且絕對不會被刪除:
  1. 主分支Master。
  2. 開發分支Develop。
  • 三種短期(臨時性)分支。開發完畢被merge進develop或master後就會被刪除的分支:
  1. 功能分支(feature branch)。
  2. 預發分支(release branch)。
  3. 修復分支(hotfix branch)。
raw-image


Git Flow包含五種分支負責處理不同的功能:

  1. Master: Master分支會專門放正式發布版本或隨時可以上線的版本。
raw-image
  1. Developer: 用來存放最新開發版本的代碼,是開發過程中代碼的中心分支。開發人員通常會以Developer這條分支為基礎,再開出Feature分支進行新功能的開發,當Feature的功能開發完畢,Feature的分支會合併回Developer。
raw-image
  1. Feature:Feature分支裡面主要是用來處理開發新功能,會是基於Developer分支開出來,功能完成時,再把開出來的Feature分支合併回Developer分支。
raw-image
  1. Release:用於支援準備發佈正式產品前的預備分支。允許修正小問題,並為發布版本準備或修改中介資料。
  2. HotFix:在Master分支中出現重大錯誤時,可以直接從Master分支建立HotFix分支來快速實施錯誤修正。
raw-image



  • GitHub flow
raw-image

整個 GitHub Flow 是基於主分支的一種輕量化工作流程,屬於 Git 的核心概念,目的在幫助團隊及專案定期的進行部署。它重點在於簡單、靈活且容易理解,特別適用於需要快速反應和頻繁交付的專案。

使用說明:

先有一個共有的遠端倉庫,然後各自用fork把遠端倉庫fork回到自己的倉庫。開發好後,再利用PR(pull request)回去共有的遠端倉庫,審核過後merge(合併)進master。

raw-image


※ GitHub Flow 的主要特點:

  1. 主分支(Main Branch): GitHub Flow 使用一個主分支,通常命名為 mainmaster,用於代表產品的穩定狀態。這是所有發布版本的基礎。
  2. 建立分支(Branching): 每當需要測試新功能、修復錯誤或進行任何其他工作時,團隊成員會在主分支的基礎上創建一個新的分支。這個分支將包含他們所進行的更改。分離出的新分支對 master 來說是非常重要的,因此分支命名應該具有描述性,讓其他人清楚知道分支正在進行的工作項目。
建立分支

建立分支


  1. 提交(Commits): 在分支上進行工作時,開發者將其更改進行提交(commit)。每次提交都應該要有相關的提交訊息(Commits Message),解釋此次提交內容。
Add Commits

Add Commits

2. 拉取請求(Pull Requests): 當在分支上完成一項任務時,開發者會向主分支提出拉取請求(pull request)。Pull Request 是一個通知團隊進行代碼審查、討論和測試的機會,因此對於協作開源專案和管理共享儲存庫的修改非常有用。

  1. 代碼審查(Code Review): 團隊成員將檢查拉取請求中的更改,提供反饋並確保代碼符合標準。這有助於確保代碼的質量和一致性。
拉取請求和代碼審查

拉取請求和代碼審查

4. 合併(Merge): 一旦拉取請求經過審查,並經過必要的更改和測試,就可以將其合併到主分支中。

合併

合併

5. 部署(Deploy): 已經被檢閱且通過測試的分支被合併到主分支上後,將被部署為生產版本,形成新的軟體發布。

部署(Deploy)

部署(Deploy)

※總結:

  • 所有在 master 分支都是可部署(Deployable)的。
  • 要增加新功能時,從 master 開一個此新功能的分支,分支命名應該具有描述性。
  • 需要回饋、幫助時,或是當完成新功能要合併(Merge)回 master 分支時,請使用 Pull Request。
  • 經過審查、測試過後,就可以合併回 master 分支。
  • 合併之後就可以馬上部署程式碼。



  • 什麼是 rebase:

說明: 

  1. rebase是 Git中的一個操作,主要用於合併分支或整理提交歷史。
  2. rebase 簡單來說就像「移花接木」,把你的分支接到別的分支上。
_images/rebase.png

_images/rebase.png

以上圖來說,就是把 New Branch 的變更整個接到 Master 上。

  • Rebase 的使用時機:
  1. 整理提交歷史:rebase 可以對提交歷史進行清理和整理。
  2. 將一個分支的修改整合到另一個分支:使用 rebase有助於保持歷史的簡潔性,避免不必要的合併提交。
  3. 解決合併衝突:在進行 rebase 時,會發生合併衝突。當解決衝突後,可以繼續應用剩下的修改。
  4. 避免合併提交:使用 rebase 可以避免產生大量的合併提交,可以讓提交歷史更加緊湊,更容易理解。
  5. 在提交到遠端之前整理分支歷史: 在推送分支到遠端之前,進行 rebase 可以確保提交歷史的整潔性,避免向遠端推送不必要的合併提交。


留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
18會員
141內容數
全端網頁開發專業知識分享
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
前言 上次我們講到 CI/CD 中的 when 使用,今天我們要來傳授一套必殺技,我們要把過去所學的全部融合再一起,相信各位都準備好了,將 Gitlab 從枷鎖中解放出來吧,讓我們來詠唱「武裝完全支配術」 「System Call. Connect Armament. Search Archiv
Thumbnail
前言 上次我們講到 CI/CD 中的 when 使用,今天我們要來傳授一套必殺技,我們要把過去所學的全部融合再一起,相信各位都準備好了,將 Gitlab 從枷鎖中解放出來吧,讓我們來詠唱「武裝完全支配術」 「System Call. Connect Armament. Search Archiv
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
上次我們了解 Pipeline 各自在做什麼是,今天來講解 Gitlab CI/CD 工作相依性,來了解 CI/CD 怎麼依據不同階段,進行工作。 上傳四個工作查看 CI/CD 運作 首先我們先定義我們要做的工作,然後上傳到 GitLab,看結果怎麼樣 run-unit-test: bef
Thumbnail
前言 上次我們簡單的寫了 CI/CD 的工作,這次我們對 Pipeline 與 Job,來多加了解他們的運作,以及我們這些工作是怎麼處發的。 Pipeline 與 Job 首先我們先切到 Build 子清單,可以看到裡面有 Pipeline、Job、Pipeline editor、Pipeli
Thumbnail
前言 上次我們簡單的寫了 CI/CD 的工作,這次我們對 Pipeline 與 Job,來多加了解他們的運作,以及我們這些工作是怎麼處發的。 Pipeline 與 Job 首先我們先切到 Build 子清單,可以看到裡面有 Pipeline、Job、Pipeline editor、Pipeli
Thumbnail
前言 今天我們要做一個初體驗,讓各位感受一下,在 GitLab CD/CD 的過程,我們今天使用官方提供的 Gitlab,如果您有自架 Gitlab ,也可以使用自架的 Gitlab 練習,我們這邊為了讓各位學習方便,所以使用官方提供的 Gitlab 作為練習,實際寫一個簡單的 CI/CD 腳本,
Thumbnail
前言 今天我們要做一個初體驗,讓各位感受一下,在 GitLab CD/CD 的過程,我們今天使用官方提供的 Gitlab,如果您有自架 Gitlab ,也可以使用自架的 Gitlab 練習,我們這邊為了讓各位學習方便,所以使用官方提供的 Gitlab 作為練習,實際寫一個簡單的 CI/CD 腳本,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News