簡體   English   中英

Git分支模型工作流程-開發/主分支

[英]Git branching model workflow - develop/master branches

git分支模型具有一個工作流,其中有兩個生命周期無限的分支: developmastermaster反映了生產就緒狀態,使用最新交付的開發更改來 develop 狀態

為了從developmaster我們經歷了一個中間狀態,即一個release branch ,該release branch支持新產品發布的准備 在完成這些准備工作(shell腳本或可能的手動更改)之后,我們將release分支合並到master中,對其進行標記並推入生產環境。

在這一點上, 僅進行更改,因為例如外部服務在生產中與過渡環境中具有不同的URL。

現在master領先於develop ,除非我將它合並回develop否則它將永遠領先。

如果我(a) 這樣做,那么我所有生產中僅在release分支中所做的更改將被合並回develop

如果我(b) 不這樣做,那么我的母帶將始終處於develop領先和落后地位,並且在分支出母版的修補程序的情況下,無論如何,我將最終在修復后將所有合並回develop

在確保我的開發分支保留生產變更的同時,使用此模型的最佳方法是什么?

實際上,這實際上是一個配置管理問題,而不是git問題。 這個問題不是git獨有的,並且是所有版本控制系統的問題。 最佳實踐是消除所有僅生產變更,或至少將其減少到最低限度。

這可以通過多種方式完成:

  • 將配置值放入數據庫中。 這將一直有效,直到您由於不得不更改數據庫來更改簡單的配置而煩惱為止
  • 將配置放入文件中,並使用基於單個變量的if語句,該變量在生產中會發生變化。 例如:

    如果(生產)值=鍵
    else值= otherkey

    這也不是一件好事,因為現在您已經擁有未經測試的代碼。

  • 將config放入環境變量中。 這工作得很好,但是最好確保您的部署過程實例化並填充它們。

  • 但是,如果您想獲得最先進的技術,請將配置放入其自己的存儲庫中,並使用諸如puppet和Chef之類的自動化工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM