自 2008 年以來,作為一名開發人員,我親眼目睹了版本控制系統的演變。從 SVN 開始,最終過渡到 Git,我已經看到這些工具如何在我們的日常工作流程中變得不可或缺。讓我分享一個詳細的分支策略,該策略已被證明在管理程式碼庫、確保穩定性和促進協作方面非常有效。

主要分行

  • main (或master )分支:

  • 生產就緒的程式碼。

  • 僅包含經過徹底測試且穩定的程式碼。

  • 直接提交受到限制;僅允許在程式碼審查和批准後透過拉取請求 (PR)。

  • develop分支:

  • 反映當前開發狀態的最新程式碼庫。

  • 所有功能和修復都在合併到main之前整合到此分支中。

  • 作為所有新功能分支的基礎。

支持分行

  • 特色分支:

  • 命名約定: feature/<feature-name>

  • 建立自: develop

  • 目的:用於開發新功能或增強功能。

  • 合併:完成並測試後,合併回develop

  • 錯誤修復分支:

  • 命名約定: bugfix/<issue-id>

  • 建立自: develop (或release ,如果修復是針對即將發布的版本)

  • 目的:修復開發過程中發現的錯誤。

  • 合併:修復後合併回develop (或release ,如果適用)。

  • 發布分支:

  • 命名約定: release/<version-number>

  • 建立自: develop

  • 目的:為新的生產版本做好準備。

  • 活動:最終測試、錯誤修復和準備發行說明。

  • 合併:準備好後合併到maindevelop

  • 修補程式分支:

  • 命名約定: hotfix/<issue-id>

  • 建立自: main

  • 目的:用於需要直接投入生產的緊急修復。

  • 合併:一旦應用,就合併到maindevelop

分行工作流程

  1. 功能開發:
  • 使用feature/<feature-name>develop建立分支。

  • 實現該功能,提交變更並將分支推送到儲存庫。

  • 開啟拉取請求以將功能分支合併到develop中。

  • 進行程式碼審查,執行必要的測試,並將變更合併到develop中。

  1. 錯誤修復:
  • 使用bugfix/<issue-id>develop建立一個分支。

  • 修復錯誤、提交變更並推送分支。

  • 開啟拉取請求以將 bugfix 分支合併到develop中。

  • 經過審查和測試後,將變更合併到develop中。

  1. 發布準備:
  • 使用release/<version-number>develop建立一個分支。

  • 執行最終測試,修復所有最後一刻的錯誤並更新文件。

  • 準備好後,將發布分支合併到main分支和develop

  1. 修補程式:
  • 使用hotfix/<issue-id>main建立一個分支。

  • 應用修復、提交變更並推送分支。

  • 開啟拉取請求以將修補程式分支合併到main中。

  • 將變更合併到develop中,以將修復包含在正在進行的開發中。

最佳實踐

  • 定期合併:定期develop合併到功能分支中,以保持更新並避免整合問題。

  • 程式碼審查:在合併任何分支之前進行強制性程式碼審查,以確保品質和遵守標準。

  • 自動化測試:實施與自動化測試的持續集成,以儘早發現問題並保持程式碼品質。

  • 文件:記錄所有更改,包括程式碼中的註釋、更新日誌和全面的提交訊息。

揭秘高級 Git 指令:簡單指南


SVN 與 Git 比較

SVN(顛覆)

  • 集中版本控制: SVN依賴中央伺服器來儲存專案文件的所有版本。

  • 提交結構:更改直接提交到中央儲存庫。

  • 分支:分支通常在伺服器上建立,分支操作可能很慢並且佔用資源。

  • 合併:與 Git 相比,合併可能更複雜且效率更低。

git

  • 分散式版本控制: Git 允許每個開發人員擁有整個專案歷史記錄的本機副本。

  • 提交結構:更改首先在本地提交,然後可以推送到遠端儲存庫。

  • 分支:分支輕量且快速,鼓勵使用功能分支。

  • 合併: Git 的合併功能更先進,可以更輕鬆地整合來自不同分支的變更。


我希望本指南對您有所幫助,就像自從 Git 成為我的日常夥伴以來它對我的幫助一樣。快樂編碼!



原文出處:https://dev.to/ak_23/branching-strategy-guide-24d6


共有 0 則留言