2012-05-01 16 views
4

我已經閱讀了關於多個不同的git分支策略,並且我高估了master分支經常被用作'生產準備'分支,並且會有一個額外的uat和dev分支。 我正在考慮使用相同的3個分支來設置我們的git倉庫,但是讓'master'包含dev代碼並添加一個生產和uat分支。這樣,開發人員可以簡單地合併到默認的git分支(即「主」)。有沒有這樣做的理由?主分支應該在git中包含什麼

克,

科恩

+4

在git中,'master'沒有特別的意義。如果你願意,你可以避免完全擁有'master'分支並擁有'uat','dev'和'production'。 – svick

回答

5

有沒有具體的理由不挑了一個又一個工作流程,使用Git它通常是留給開發團隊的自由裁量權來決定他們的最佳實踐。

您提到的生產就緒主方法通常有多個開發分支(有時稱爲功能分支),然後選擇主作爲放置所有這些的最終位置,因爲通常應該只有一個主分支(並且經常只有一個生產版本)。

這是多少公司工作,但肯定不是全部。許多其他人使用「不穩定的主人」方法,它遵循與您所提到的類似的模式 - 一些人擁有生產存儲庫,他們自己的主人和分支機構被認爲是不穩定的,並且團隊領導人在代碼時推動生產回購特定分支被視爲生產準備就緒。

這裏Git的關鍵在於每個人都有自己的本地存儲庫,擁有自己的分支機構和主人。這允許他們在任何他們想要的時間創建自己的私人分支,無論他們認爲合適的邪惡目的,但它確實使得定義分支名稱的目的更加難以執行。

4

使用DVCS(分佈式版本控制系統)理解的關鍵概念是,您沒有一個工作流(在分支之間合併),而是兩個:存儲庫之間的發佈(推/拉)。
請參閱「What git branching models actually work?

這意味着你將圍繞克隆庫,併爲每個克隆,你要問的是:

如果我克隆一個回購「默認」(無特殊參數) ,我想看什麼內容?

從克隆回購包含的所有可能分支中獲得的內容將是您的'master'分支。
您可以更改該「默認分支」:請參閱「Git: Correct way to change Active Branch in a bare repository?」。

因此,如果您有一個專門用於開發的repo,master分支將代表最新的代碼「工作」,並與其他分支進行各種「實驗」。
這基本上是Git回購本身的內容:請參閱「Git/Git Workflow」。但是任何其他克隆都可以專門用於其他開發生命週期步驟(用戶驗收測試,坐式系統集成測試,預產品或產品)。
在這種情況下,他們的'master'分支將具有不同的含義,以適應該回購所扮演的角色。

1

這一切都取決於開發人員的舒適度。你可以繼續使用你解釋的方法。也可以有多個分支用於基於衝刺或任何其他方法進行提交。 每當您要在生產環境中部署代碼時,合併提交提交的特定分支和路徑。

1

我認爲這是一個很好的起點,實際上是閱讀Git's recomended workflow document.他們談論使用主站作爲穩定和功能分支。

的摘錄:

畢業 ~~~~~~~~~~

作爲一個給定的特徵從實驗趨於穩定,這也 「畢業生」的相應的分支之間該軟件。 git.git使用下面的「集成分支」:

  • 「MAINT」跟蹤了應該進入下一個「維護 釋放」的提交,即最後發佈的穩定版本更新;

  • 'master'跟蹤應該進入下一個版本的提交;

  • 「下一個」旨在作爲測試主題的測試分支,爲主要測試 穩定性。

有是用於略有不同第四官員分支:

  • 「PU」(建議更新)是事情是 沒有完全準備好納入,但(見「集成分支集成分支「下面的 )。

四個分支中的每一個通常都是它上面的一個 的直接後代。

概念,特徵在一個不穩定的分支(通常是「下一個」 或「PU」)進入,「畢業生」到「主人」的下一個版本,一旦它 考慮不夠穩定。

+0

「'master'跟蹤應該進入下一個版本的提交;」這是'dev'分支做的 –