我正在尋找將git分支轉換爲git標籤的最佳和最安全的方法。當我手動移植一個svn版本庫時,我基本上覆制了所有的分支機構,並且我們爲每個次要版本(1.1,1.2,1.3)都有一個分支,儘管這樣做可能不是最好的方式,但是爲了速度,當時我比標籤更適合分支。我現在有分支機構1.5,1.6,1.7,1.8,但是由於我們在任何時候都只部署了1個版本的代碼,我可能只需要最後一個版本就可以成爲分支機構,被部署。所以我正在尋找將git分支轉換爲git標籤的最佳方式。我想我有辦法但確定它有多好。將git分支轉換爲git標籤
我迄今所做的是爲每個分支我要轉換爲一個標籤,我已經檢查,以確保沒有在那些不在主支支沒有提交,所以我所做的:
git log 1.5 ^master
git log 1.6 ^master
git log 1.7 ^master
所有這些都沒有給我帶來什麼,我相信這意味着這些分支中的所有提交都存在於主設備中。我這樣做是因爲我假定在那些不在master的分支中有提交,當將分支轉換爲標籤時,我會失去它們,因爲標籤只是一個提交而不是開發線的「指針」。與似乎不錯,我的假設是,我只想要做:
git tag 1.5v 1.5
git tag 1.6v 1.6
git tag 1.7v 1.7
那我就只需要刪除本地的分支機構,推動這些變化給遠程倉庫。這是將git分支轉換爲git標籤的最佳方式嗎?
我還有一個問題是,如果有人從1.7中創建了一個分支(這是沒有人應該做的),並且他們拉取了刪除該分支的更改,他們是否能夠將這些更改合併到另一個分支(如master)或者那種破壞他們創建的分支?這是一個不應該發生的情況,因爲除了最後一個版本之外,不應該創建任何人的分支版本(在本例中爲1.8),但人們並不總是遵循程序,所以我想確保有一種方法要解決這個問題,如果發生了。
[這裏我描述了一種將SVN標籤分支轉換爲git標籤的有效方法(http://stackoverflow.com/a/20807602/815781) – Onlyjob 2013-12-27 20:54:17