2011-09-14 64 views
1

所以分支模型我通常用的是類似以下內容:的Git分支模型

http://nvie.com/posts/a-successful-git-branching-model/

不過,我目前使用的,他們是爲每一個新版本創建一個新的分支。例如,他們正在將主人1.0合併到主人死亡的地步。當他們需要開始1.1開發時,他們會在1.0中合併1.1。當它們在1.0版上完成時,他們會將其部署到生產環境中,並且該分支基本上會死亡。您可以執行常規操作併合並主要功能的發佈分支,並在完成後將其合併回來。

我可以想到的唯一一件事情使得這個非常有用的是,如果你出於某種原因正在對前一版本以外的其他東西做修補程序。由於該分支始終存在,因此您可以回到該分支並進行更改並提交修補程序。 (或者創建一個分支並將其合併回來)。他們正在標記發佈等...

這似乎真的很不直觀git的設計方式,因爲你真的沒有一個主分支..你的主分支是你從前一個分支合併的最後一個版本。我認爲這對多行開發可能會更好。如果您一次正在開發3個版本。這樣使用git會有什麼問題嗎?

回答

3

讓你的發行版分支懸而未決,並將它們合併回主並標記你的版本之間在功能上沒有區別。分支和標籤都是指向單個提交的指針。將master分支中的各種提交標記爲特定發佈的好處是,您沒有一堆混亂輸出git branch的分支,而是可以清楚地請求git tag的分支列表。

我懷疑你的同事是分支機構實實在在的事情卡住思維,當他們從根本上只是一種特定的標籤(或者更確切地說,標籤和分支都只是裁判)。

我唯一能想到的就是如果你出於某種原因正在爲之前版本以外的其他東西做一個修補程序。

您可以輕鬆檢出標籤並執行修復。

是否有任何問題可以通過這種方式使用git?

不是真的,除了變得非常困惑,當你有git branch顯示的一百個分支。無論你如何管理你的分支,Git都可以工作。

1

我假設你有一些與此類似:

master 
     `->1.0----(release) 
      |  | 
      `-----.-->1.1----(release) 
         |  | 
         `---->1.2(release) 
           | 
           `--->2.0 

從技術上講,確實是沒有問題。實際上,最新編號的分支是您的主人。但是,它確實違反了規定主人通常是真實代碼所在的約定。所以最大限度地你可能需要向你打電話給的顧問或你外包的任何公司做一些解釋。

只要你的分支以某種方式很好地融合到最新的分支中,你就很好。如果沒有,如果有人刪除了懸掛提交的分支,那麼當git執行其垃圾收集時,你已經失去了這項工作。

+0

這正是他們如何做的.. – Casey