0

在我的公司,我們需要在功能分支準備就緒時進行部署 - 無需等待。爲此,我想出了這個開發/ gitflow過程:保持分支機構與頻繁部署同步

Our dev process

的過程會像這樣:

  1. 開發者分支「釋放」分支和作品在功能分支上。
  2. 工作時,開發人員可以通過合併到dev進行本地測試。這就像分級,但QA不會觸及這個環境。
  3. 當開發人員在本地進行測試並完成工作時,他們將其合併到我們的staging分支中,並向release分支發出合併請求。 [綠線#1]
  4. 在登錄staging分支後,登臺服務器會自動更新並進行QA測試。 [Green line#2]
  5. 如果QA批准它,他們接受合併請求,所有測試的東西都應該在release分支中。 [虛線綠色]
  6. release分支發生變化後,我們將其合併到master(生產)分支中並進行部署。
  7. 我的問題:部署投入生產後,我們會合並productionstagingdev嗎? [紅線]

我擔心的是,這個過程會導致大量代碼衝突時合併production向下。特別是如果我們有一些正在從質量保證 - >開發 - >質量保證一遍又一遍地轉移的分段。

回答

1

這個流程中有很多噪音,我擔心的是它過於複雜的名義上完成了Git Flow。我的建議一般是儘可能簡化這個流程 - 如果你需要一個單獨的「分段」分支,然後創建它 - 但總的來說:

  • 生產就緒的代碼居住在主。
  • 開發人員的工作主要依靠主人。他們可以在本地測試他們的功能分支,如果他們不能,那應該儘快修復,而不是晚些時候。
  • 需要QA測試的功能分支被推送到分段。理想情況下,除非QA同意處理更多內容,否則此處只存在一個功能。
  • 分級測試達到滿意後,則合併掌握並投入生產。

鑑於多種功能分支發生的可能性正準備在正好同時是罕見的,以這種方式簡化了發佈週期,這樣沒有歧義與QA存在(因爲它永遠只能測試一次一個功能分支)將簡化很多事情。

+0

同意這一點。我們考慮過「以環境爲中心」的分支,比如'dev','qa','stage',但是決定不支持它。這樣做會使'git-flow'移動得太遠,這對我們很好,並且意味着整個流程(基本上構成了從頭開始構建git流的替代方案)需要由我們編寫/完善(不容易的任務)。 – vikingsteve