Git和SVN之間的五個(gè)基本區(qū)別

Git和SVN之間的五個(gè)基本區(qū)別

英文原文:5 Fundamental differences between GIT & SVN,編譯:外刊IT評(píng)論

如果你在讀這篇文章,說明你跟大多數(shù)開發(fā)者一樣對(duì)GIT感興趣,如果你還沒有機(jī)會(huì)來試一試GIT沽讹,我想現(xiàn)在你就要了解它了兄墅。

GIT不僅僅是個(gè)版本控制系統(tǒng),它也是個(gè)內(nèi)容管理系統(tǒng)(CMS),工作管理系統(tǒng)等统刮。如果你是一個(gè)具有使用SVN背景的人,你需要做一定的思想轉(zhuǎn)換账千,來適應(yīng)GIT提供的一些概念和特征侥蒙。所以,這篇文章的主要目的就是通過介紹GIT能做什么匀奏、它和SVN在深層次上究竟有什么不同來幫助你認(rèn)識(shí)它鞭衩。

那好,這就開始吧…

1.GIT是分布式的娃善,SVN不是:

這是GIT和其它非分布式的版本控制系統(tǒng)论衍,例如SVN,CVS等聚磺,最核心的區(qū)別坯台。如果你能理解這個(gè)概念,那么你就已經(jīng)上手一半了瘫寝。需要做一點(diǎn)聲明蜒蕾,GIT并不是目前第一個(gè)或唯一的分布式版本控制系統(tǒng)。還有一些系統(tǒng)焕阿,例如Bitkeeper,Mercurial等咪啡,也是運(yùn)行在分布式模式上的。但GIT在這方面做的更好暮屡,而且有更多強(qiáng)大的功能特征瑟匆。

GIT跟SVN一樣有自己的集中式版本庫或服務(wù)器。但,GIT更傾向于被使用于分布式模式愁溜,也就是每個(gè)開發(fā)人員從中心版本庫/服務(wù)器上chect out代碼后會(huì)在自己的機(jī)器上克隆一個(gè)自己的版本庫疾嗅。可以這樣說冕象,如果你被困在一個(gè)不能連接網(wǎng)絡(luò)的地方時(shí)代承,就像在飛機(jī)上,地下室渐扮,電梯里等论悴,你仍然能夠提交文件,查看歷史版本記錄墓律,創(chuàng)建項(xiàng)目分支膀估,等。對(duì)一些人來說耻讽,這好像沒多大用處察纯,但當(dāng)你突然遇到?jīng)]有網(wǎng)絡(luò)的環(huán)境時(shí),這個(gè)將解決你的大麻煩针肥。

同樣饼记,這種分布式的操作模式對(duì)于開源軟件社區(qū)的開發(fā)來說也是個(gè)巨大的恩賜,你不必再像以前那樣做出補(bǔ)丁包慰枕,通過email方式發(fā)送出去具则,你只需要?jiǎng)?chuàng)建一個(gè)分支,向項(xiàng)目團(tuán)隊(duì)發(fā)送一個(gè)推請(qǐng)求具帮。這能讓你的代碼保持最新博肋,而且不會(huì)在傳輸過程中丟失。GitHub.com就是一個(gè)這樣的優(yōu)秀案例蜂厅。

有些謠言傳出來說subversion將來的版本也會(huì)基于分布式模式匪凡。但至少目前還看不出來。

2.GIT把內(nèi)容按元數(shù)據(jù)方式存儲(chǔ)葛峻,而SVN是按文件:

所有的資源控制系統(tǒng)都是把文件的元信息隱藏在一個(gè)類似.svn,.cvs等的文件夾里锹雏。如果你把.git目錄的體積大小跟.svn比較巴比,你會(huì)發(fā)現(xiàn)它們差距很大术奖。因?yàn)?.git目錄是處于你的機(jī)器上的一個(gè)克隆版的版本庫,它擁有中心版本庫上所有的東西轻绞,例如標(biāo)簽采记,分支,版本記錄等政勃。

3.GIT分支和SVN的分支不同:

分支在SVN中一點(diǎn)不特別唧龄,就是版本庫中的另外的一個(gè)目錄。如果你想知道是否合并了一個(gè)分支奸远,你需要手工運(yùn)行像這樣的命令svn propget svn:mergeinfo既棺,來確認(rèn)代碼是否被合并讽挟。感謝Ben同學(xué)指出這個(gè)特征。所以丸冕,經(jīng)常會(huì)發(fā)生有些分支被遺漏的情況耽梅。

然而,處理GIT的分支卻是相當(dāng)?shù)暮唵魏陀腥づ种颉D憧梢詮耐粋€(gè)工作目錄下快速的在幾個(gè)分支間切換眼姐。你很容易發(fā)現(xiàn)未被合并的分支,你能簡單而快捷的合并這些文件佩番。

4.GIT沒有一個(gè)全局的版本號(hào)众旗,而SVN有:

目前為止這是跟SVN相比GIT缺少的最大的一個(gè)特征。你也知道趟畏,SVN的版本號(hào)實(shí)際是任何一個(gè)相應(yīng)時(shí)間的源代碼快照贡歧。我認(rèn)為它是從CVS進(jìn)化到SVN的最大的一個(gè)突破。因?yàn)镚IT和SVN從概念上就不同拱镐,我不知道GIT里是什么特征與之對(duì)應(yīng)艘款。如果你有任何的線索,請(qǐng)?jiān)谠u(píng)論里奉獻(xiàn)出來與大家共享沃琅。

更新:有些讀者指出哗咆,我們可以使用GIT的SHA-1來唯一的標(biāo)識(shí)一個(gè)代碼快照。這個(gè)并不能完全的代替SVN里容易閱讀的數(shù)字版本號(hào)益眉。但晌柬,用途應(yīng)該是相同的。

5.GIT的內(nèi)容完整性要優(yōu)于SVN:

GIT的內(nèi)容存儲(chǔ)使用的是SHA-1哈希算法郭脂。這能確保代碼內(nèi)容的完整性年碘,確保在遇到磁盤故障和網(wǎng)絡(luò)問題時(shí)降低對(duì)版本庫的破壞。這里有一個(gè)很好的關(guān)于GIT內(nèi)容完整性的討論 –http://stackoverflow.com/questions/964331/git-file-integrity

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末展鸡,一起剝皮案震驚了整個(gè)濱河市屿衅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莹弊,老刑警劉巖涤久,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忍弛,居然都是意外死亡响迂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門细疚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔗彤,“玉大人,你說我怎么就攤上這事∪欢簦” “怎么了贫途?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長待侵。 經(jīng)常有香客問我潮饱,道長,這世上最難降的妖魔是什么诫给? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任香拉,我火速辦了婚禮,結(jié)果婚禮上中狂,老公的妹妹穿的比我還像新娘凫碌。我一直安慰自己,他們只是感情好胃榕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布盛险。 她就那樣靜靜地躺著,像睡著了一般勋又。 火紅的嫁衣襯著肌膚如雪苦掘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天楔壤,我揣著相機(jī)與錄音鹤啡,去河邊找鬼。 笑死蹲嚣,一個(gè)胖子當(dāng)著我的面吹牛递瑰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播隙畜,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼抖部,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了议惰?” 一聲冷哼從身側(cè)響起慎颗,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎言询,沒想到半個(gè)月后俯萎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倍试,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年讯屈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛋哭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片县习。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出躁愿,到底是詐尸還是另有隱情叛本,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布彤钟,位于F島的核電站来候,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逸雹。R本人自食惡果不足惜营搅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梆砸。 院中可真熱鬧转质,春花似錦、人聲如沸帖世。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽日矫。三九已至赂弓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哪轿,已是汗流浹背盈魁。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窃诉,地道東北人备埃。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像褐奴,于是被迫代替她去往敵國和親按脚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 如果你在讀這篇文章敦冬,說明你跟大多數(shù)開發(fā)者一樣對(duì)GIT感興趣辅搬,如果你還沒有機(jī)會(huì)來試一試GIT,我想現(xiàn)在你就要了解它了...
    可樂小子閱讀 800評(píng)論 0 1
  • 1.GIT是分布式的脖旱,SVN不是: 這是GIT和其它非分布式的版本控制系統(tǒng)堪遂,例如SVN,CVS等萌庆,最核心的區(qū)別溶褪。如...
    月上樓閣閱讀 274評(píng)論 0 2
  • 三壽剛滿三十,剛生完孩子彭则,剛換了工作崗位鳍刷,生活的壓力,工作的忙碌慢慢化成細(xì)紋記錄在她臉上俯抖,累積成一層層贅肉堆積...
    函三壽閱讀 237評(píng)論 0 3
  • 看著《雙城記》中的人物不停穿梭在倫敦和巴黎兩個(gè)城市之間输瓜,穿梭在生與死的兩極之間,突然覺得芬萍,我們每一個(gè)人其實(shí)也是穿梭...
    青燈先生閱讀 443評(píng)論 0 3
  • 兮兮年華付流水 朝朝暮暮思君歸 門前老樹發(fā)新芽 夢(mèng)里花落知多少
    看守心靈的月亮閱讀 375評(píng)論 0 0