2015-07-01 40 views
0

與Git管理大項目有關的良好實踐的一個問題:我聽說通常會有一個develop分支,在您的開發過程中,只爲穩定/生產版本保留master分支。 我的問題是:爲什麼這需要?我不是在徵求意見/辯論,而是針對這種技術的利弊。Git使用長期運行的'develop'分支嗎?

問題在於它混合了兩個概念:版本系統和發佈系統。當你有一個穩定/生產版本時,你應該用一個標籤標記它 - 這將是一個版本。其他任何顯然都在開發中。

這對我來說還不是很清楚,因爲通常的做法是擁有feature分支。一旦您的feature分支穩定後,將分支合併到develop分支中而不是直接分配到master分支中有什麼意義?同樣,在我看來,只有tags應該用於顯示穩定版本,而不是特定的分支。因此,對於我來說,在與feature分支合併後,在master中存在不穩定的代碼即可。

我想補充一點,在GitHub上,發佈機制基於tags,它並不基於push在特定分支中的操作;對我來說,這又是反對使用develop分支的一點。

+0

你能確認你指的是工作流程所知道的[Git的流量(HTTP:// nvie。 COM /職位/ A-成功-混帳分支模型/)? – Jubobs

+0

正是,另請參閱https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows – FBB

回答

1

需要它的時候你有一個流血的邊緣版本。邏輯如下:

  • 師父總是有一個包含新的穩定功能不存在,在過去的穩定版本,但適合在開發環境中使用
  • 標籤顯示的一個里程碑穩定的代碼,穩定的生產 - 準備發佈
  • 發展分支包含正在積極發展越野車的特點,不適合用在開發環境中
+0

不應該錯誤的功能,而是在他們自己的「功能」banches? – FBB

+0

功能分支用於功能開發。然而,他們可能會創建迴歸錯誤或創建其他功能的問題,直到兩個合併到開發分支 – TheGeorgeous

+0

如果在合併之前使用'master'重新分配'feature'分支,爲什麼在這個時候會出現任何錯誤階段? – FBB