View a markdown version of this page

Gitflow 策略中的分支 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Gitflow 策略中的分支

Gitflow 分支策略通常具有下列分支。

Gitflow 分支策略中的分支和環境。

功能分支

Feature 分支是您開發功能的短期分支。feature 分支是透過分支離開develop分支來建立的。開發人員在feature分支中反覆執行、遞交和測試程式碼。功能完成後,開發人員會提升此功能。只有兩個路徑從特徵分支轉送:

  • 合併至sandbox分支

  • develop分支中建立合併請求

命名慣例:

feature/<story number>_<developer initials>_<descriptor>

命名慣例範例:

feature/123456_MS_Implement_Feature_A

沙盒分支

sandbox 分支是 Gitflow 的非標準短期分支。不過,它適用於 CI/CD 管道開發。sandbox 分支主要用於下列目的:

  • 使用 CI/CD 管道而非手動部署來執行沙盒環境的完整部署。

  • 在較低環境中提交合併請求進行完整測試之前,開發和測試管道,例如開發或測試。

Sandbox 分支本質上是暫時的,並不意味著長期存在。應該在特定測試完成後將其刪除。

命名慣例:

sandbox/<story number>_<developer initials>_<descriptor>

命名慣例範例:

sandbox/123456_MS_Test_Pipeline_Deploy

開發分支

develop 分支是長期分支,可將功能整合、建置、驗證和部署到開發環境。所有feature分支都會合併到develop分支中。合併至develop分支是透過需要成功建置和兩個開發人員核准的合併請求完成。若要防止刪除,請在分支上啟用develop分支保護。

命名慣例:

develop

發行分支

在 Gitflow 中,release分支是短期分支。這些分支很特別,因為您可以將它們部署到多個環境,採用建置一次、部署許多方法。 Release分支可以鎖定測試、預備或生產環境。在開發團隊決定將功能提升到更高的環境之後,他們會建立新的release分支,並使用先前版本的版本編號遞增。在每個環境的閘道上,部署需要手動核准才能繼續。 Release分支應該需要變更合併請求。

release分支部署到生產環境之後,應該將其合併回 developmain分支,以確保任何錯誤修正或 Hotfix 都合併回未來的開發工作。

命名慣例:

release/v{major}.{minor}

命名慣例範例:

release/v1.0

主要分支

main 分支是長期分支,一律代表在生產環境中執行的程式碼。從發行管道成功部署後,程式碼main會自動從發行分支合併到分支。若要防止刪除,請在分支上啟用main分支保護。

命名慣例:

main

bugfix 分支

bugfix 分支是短期分支,用於修正尚未發佈至生產環境的發行分支中的問題。bugfix 分支應僅用於將release分支中的修正提升為測試、預備或生產環境。bugfix 分支一律從release分支分支分支。

測試錯誤修正之後,可以透過合併請求將其提升為release分支。然後,您可以遵循標準發行程序,將release分支向前推。

命名慣例:

bugfix/<ticket>_<developer initials>_<descriptor>

命名慣例範例:

bugfix/123456_MS_Fix_Problem_A

hotfix 分支

hotfix 分支是用於修正生產中問題的短期分支。它僅用於提升必須加速才能到達生產環境的修正。hotfix 分支一律從 分支main

測試 Hotfix 之後,您可以透過將請求合併到從 建立的release分支,將其提升至生產環境main。然後,您可以遵循標準發行程序,將release分支向前推送以進行測試。

命名慣例:

hotfix/<ticket>_<developer initials>_<descriptor>

命名慣例範例:

hotfix/123456_MS_Fix_Problem_A