簡體   English   中英

Git分支與SVN分支有何不同?

[英]How is a Git branch different from a SVN branch?

我將從SVN遷移到Git。

我閱讀的所有有關遷移的文章都討論了如何在SVN上使用Git意味着一直分支。

我沒有得到的是Git分支與SVN分支有何不同。 它們有何不同?

我認為主要區別是:

在git(以及所有其他分布式版本控制(DVCS)系統)中,每個開發人員始終始終隱式擁有自己的分支,因此合並很容易,因為如果合並困難,該系統將無法使用。 在DVCS中,合並在歷史記錄中很明顯,因為它們具有多個父更改集。

在SVN中,每個人都有完全相同的項目樹,只有明確要求一個分支,您才會獲得一個分支。 合並在SVN中很難。 甚至很長時間以來,甚至都根本不支持自動合並,后來使用特殊的“ svn:mergeinfo”屬性對其進行了固定,可以由用戶修改該屬性,從而使所有事情都搞砸了。 合並根本不會真正出現在歷史中,除非您閱讀此特殊屬性並手動重建發生的情況。

您一直在使用SVN,因此已經接受了“合並困難,因此分支不良”的培訓。 您需要忘記所有的SVN培訓。 DVCS是不同的。 合並是您的朋友。 每次提交時都會發生分支。 因為不一定需要中央服務器,所以可能有許多人與同一個父級一起提交了任何數量的變更集,並且所有這些最終都必須最終合並在一起**。

本教程適用於Mercurial(另一個DVCS),但概念也適用於git。 它很好地涵蓋了這些概念,並且是為來自SVN的人們設計的: http : //hginit.com

**在git中,人們通常會改組而不是合並,但這是相同的基本思想,並非每個團隊都鼓勵這樣做。

如果您熟悉linux,則svn的分支為cp命令,而git分支為ln

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM