2010-11-07 94 views
5

我有一個包含穩定代碼的主分支master。每次我想要構建新的代碼時,請添加新代碼,然後將其合併回主服務器並刪除開發分支。在git中創建並刪除大量分支很糟糕嗎?

但是,這是否會創建一個更大的回購數據庫,而不僅僅是在開始添加新內容之前保留開發分支併合並主開發人員(因此開發是最新的)?所有這些臨時開發分支在回購中是否需要額外的空間?

回答

6

爲單個主題/特徵/任務創建臨時分支是。你做對了。不要只停留在「開發」 - 「featureA」,「bugX」,「bugX-測試」,任何你需要的東西,做到!

分支佔用基本上沒有空間。它是一個指向提示的提交指針,所以它被表示爲一個文件(.git/refs/heads/branch-name),其內容僅僅是該提交的SHA1。很小。最終他們可以收集到packed-refs文件中,該文件只是每個分支的一行 - 名稱和SHA1,甚至小於原始文件! (Git這樣做是爲了避免在其歷史記錄中包含1000個次要/維護髮布版本標籤的回購中存在太多文件)。它們也有reflog,每次分支位置發生更改時都會記錄一行(請嘗試git reflog show查看HEAD的reflog),但再次,這非常小 - 並且在刪除分支時將其刪除。

1

這並不差,實際上推薦用於實驗代碼。

如果您擔心自己的回購規模,請使用'git gc'來收集垃圾並將其壓縮。

4

正如Jeutti解釋,分支機構的設計是可笑的便宜。不僅如此,據我所知,Git是the only major, free VCS這種分支。

給你如何似乎可以用樹枝,我想你會從nvie的GitFlow branching modelhelper extension(鏈接到解釋性的博客文章)作爲一個簡單,乾淨的方式,使分支發佈管理的最大效益。 (基本上,你看起來已經在做的更精細的方法)