2011-08-04 39 views
2

我剛剛從git發佈了一個產品的V1.0.0,我想知道現在推薦的建議是什麼。git的第一個主要版本

我是否創建v1.0.0分支或是v1.0.0註釋標籤,是更好的選擇?

標籤似乎是對我來說正確的方法,但我不確定從標籤分支和合並的工作流程。

+0

如果您在製作標籤之前進行發佈,那麼您已經錯過了該船。在發佈之前應該做一個帶註釋的標籤。事實上,通過很多定義,使註釋標籤*成爲發佈版本。 –

+0

只要您知道發佈完成的提交,您標記它時就沒有關係。 – Makis

回答

2

的口頭禪已經表示在計算器上的其他地方:

分行的工作,標記是版本。

您的主線分支(通常是主分支)應該是下一版本的連續前向開發。每次發佈時都使用標籤(至少註明)來標記事件。

如果您需要在下一個版本的工作過程中爲發佈的版本製作維護版本,則可以檢出標籤並從該點創建分支。

git checkout -b <tag>-maintenance <tag> 

這將爲您的維護工作創建一個新的分支。在完成維護版本發佈後,您將通過在維護分支上標記版本來遵循維護分支上的相同流程。

如果在release(master)分支上沒有其他前向開發,您可以將維護工作添加到該分支,再次標記,然後繼續。

+0

您是否說過,對於每個潛在的錯誤修復,我會在當前標記之外創建一個分支。修正錯誤或新功能,創建新標記並向上遊併入主設備? – dagda1

+0

並非每個錯誤都能單獨修復這將是瘋狂的:-)而不是功能,功能被計劃並進入預定的版本,這將是一個錯誤修復版本,也就是說,你已經發布了2.1版本,並且你正在2.2版本上。主分支(master),但是現在你已經發現了2.1中需要修復的一些bug,2.2是一種非常流行的方式,所以你想要發佈2.1.1。在2.1創建分支, 2.1.1更改,合併,標記和發佈。 –

0

取決於,但我認爲在下一個版本的工作中,您會希望在不久的將來繼續修復v.1.0.0。

我會馬上創建一個分支。這是不太可能的,你不會需要它(只有情況下,你永遠不需要創建v1.0.1)。

您當然也可以標記它(永遠不會傷害),然後根據該標記創建分支。您可以簡單地使用標記創建分支

git checkout -b 1.0.0 v1.0.0 
0

註釋標記可能是您應該做的第一件事。

從那裏,你有幾個選擇你的工作流程:這裏有兩個最常見的選項。您可以繼續進行「僅前向」風格的開發,其中不再支持1.0系列(1);你可以在1.0系列上做「僅支持」,並且所有的新功能都被添加到2.0系列中(或者替代1.0.1和1.1,2.0版完全重寫 - 版本號並不重要)(2) 。方案2絕對是更「專業」的選擇,但如果它是一個範圍較窄的較小項目,方案1是可以的。

在場景1中,您可以在主分支中完成所有工作,也可以做功能分支,準備好後合併到主分支中。當你有一個新版本時,只需將它標記爲1.1或1.0.1或其他任何東西。

在方案2中,您可以使用主分支來反映最新版本,反映您的支持版本的「支持」分支,階段和測試新功能的「分段」分支,這些新功能最終將合併到主,並且您可以使用功能分支來開發新功能或錯誤修復。當您部署錯誤修復時,您會將支持分支合併回主服務器。當您發佈新版本或支持版本時,只需再次使用帶註釋的標籤即可。個人而言,我通常贊成使用標籤的master-staging-support分支,而不是每個版本化版本都有一個分支;但這是關於git的偉大之處 - 無論您認爲合適,您都可以做到!所以當然,我提出的兩個選項絕不是您開發工作流程的唯一選項。

+0

因此,我在1.0.0處標記回購並創建一個1.0.0支持分支就是您在場景2中所說的內容。我想我可以使用該標記作爲支持分支而不是創建另一個分支。 – dagda1

+2

@ dagda1:標籤可以被認爲與提交時的「額外註釋」類似。當你想確切地知道哪個提交對應某個特定的東西時,你使用了一個標籤 - 在這種情況下,是用於構建軟件版本1.0.0的提交。另一方面,分支僅僅是一個提交的命名指針,可以隨着你提交更多的提交而移動。所以標籤在開發之後很重要,在開發過程中分支是重要的。 –

+0

@ daga1:不,從「v1.0.0」標籤的分支肯定不會被稱爲「1.0.0」,只是因爲它不是1.0.0(這只是標籤)。它的分支將導致「1.0.x」,所以它可以被稱爲「支持」,「maint」(enance),「prev」,或者,如果你打算支持超過1個版本,像「maint- 1.0「是合適的 –

1

隨着git,你可以隨時創建分支!我會做到以下幾點:

  1. 創建標籤「V1.0.0」
  2. 當我需要一些修復添加到1.0.0版本,我將創建一個基於分支「V1.0.0維護」我標籤。
  3. 如果您想要修復當前版本,請合併'v1.0。0維護」到‘主人’或使用櫻桃採摘
相關問題