請注意:我不想重新啓動參數,無論Mercurial或Git是否更好,我只是有一個技術問題,作爲Mercurial用戶,我不明白。我也不確定SO是否是問這樣一個問題的合適地點,但它是編程相關的。爲什麼Git不將分支名稱存儲爲提交的一部分?
從用戶的角度(例如和http://felipec.wordpress.com/2011/01/16/mercurial-vs-git-its-all-in-the-branches/)已經討論了兩個版本控制系統Git和Mercurial的差異,主要區別在於處理分支。我已經閱讀了許多這些討論,但我一直在問自己這個問題:
爲什麼Git不將分支名稱存儲爲提交的一部分?
我真的沒有看到不這樣做的好理由;這意味着數據不能簡單地消失,因爲沒有任何引用(標籤,分支,或其他)指向它。
我看到將提交中的分支存儲爲Mercurial的一大優點,因爲這會使其更難以丟失數據。
Git支持Git分支模型的主要觀點是,您可以簡單地刪除分支,但並不妨礙Git將分支的名稱作爲每次提交的一部分進行存儲:如果分支的提交被刪除,對該分支的引用也是如此。它也不會干擾「廉價分支」的說法:分支機構管理起來不會更昂貴。我不認爲所需的額外存儲空間應該值得關注:每次提交只需幾個字節。
我很困惑,此刻你什麼時候失去了數據? – Useless
我不這樣做,但這是可能的:據我所知,當你沒有指向標籤或分支時,分離的頭部將被垃圾收集。 –
@danielkullmann:垃圾收集,是的,但在此之前至少兩週:http://stackoverflow.com/questions/5772192/git-how-can-i-reconcile-detached-head-with-master-origin – VonC