加載中 ...
首頁 > 建站 > 資源 > 正文

Git和SVN之間的五個基本區別

2019-02-16 09:33:53 來源:

若是你在讀這篇文章,申明你跟年夜大都開辟者一樣對GIT感樂趣,若是你還沒有機遇來試一試GIT,我想此刻你就要領會它了。

GIT不但僅是個版本節制系統,它也是個內容辦理系統(CMS),工作辦理系統等。若是你是一個具有利用SVN布景的人,你需要做必然的思惟轉換,來順應GIT供給的一些概念和特點。所以,這篇文章的首要目標就是經由過程先容GIT能做甚么、它和SVN在深條理上事實有甚么分歧來幫忙你熟悉它。

那好,這就起頭吧…

1.GIT是散布式的,SVN不是:

這是GIT和其它非散布式的版本節制系統,例如SVN,CVS等,最焦點的區分。若是你能理解這個概念,那末你就已上手一半了。需要做一點聲明,GIT其實不是今朝第一個或獨一的散布式版本節制系統。還有一些系統,例如Bitkeeper,?Mercurial等,也是運行在散布式模式上的。但GIT在這方面做的更好,并且有更多壯大的功能特點。

GIT跟SVN一樣有本身的集中式版本庫或辦事器。但,GIT更偏向于被利用于散布式模式,也就是每一個開辟職員從中間版本庫/辦事器上chect out代碼后會在本身的機械上克隆一個本身的版本庫??梢匀缭S說,若是你被困在一個不克不及毗連收集的處所時,就像在飛機上,地下室,電梯里等,你依然可以或許提交文件,查看汗青版本記實,建立項目分支,等。對一些人來講,這仿佛沒多年夜用途,但當你俄然碰到沒有收集的情況時,這個將解決你的年夜麻煩。

一樣,這類散布式的操縱模式對開源軟件社區的開辟來講也是個龐大的恩賜,你沒必要再像之前那樣做出補釘包,經由過程email體例發送出去,你只需要建立一個分支,向項目團隊發送一個推要求。這能讓你的代碼連結最新,并且不會在傳輸進程中丟掉。GitHub.com就是一個如許的優異案例。

有些謊言傳出來講subversion未來的版本也會基于散布式模式。但最少今朝還看不出來。

2.GIT把內容按元數據體例存儲,而SVN是按文件:

所有的資本節制系統都是把文件的元信息埋沒在一個近似.svn,.cvs等的文件夾里。若是你把.git目次的體積年夜小跟.svn比力,你會發現它們差距很年夜。由于,.git目次是處于你的機械上的一個克隆版的版本庫,它具有中間版本庫上所有的工具,例如標簽,分支,版本記實等。

3.GIT分支和SVN的分支分歧:

分支在SVN中一點不出格,就是版本庫中的別的的一個目次。若是你想知道是不是歸并了一個分支,你需要手工運行像如許的號令svn propget svn:mergeinfo,來確認代碼是不是被歸并。感激Ben同窗指出這個特點。所以,常常會產生有些分支被漏掉的環境。

但是,處置GIT的分支倒是相當的簡單和有趣。你可以從統一個工作目次下快速的在幾個分支間切換。你很輕易發現未被歸并的分支,你能簡單而快捷的歸并這些文件。

4.GIT沒有一個全局的版本號,而SVN有:

今朝為止這是跟SVN比擬GIT貧乏的最年夜的一個特點。你也知道,SVN的版本號現實是任何一個響應時候的源代碼快照。我以為它是從CVS進化到SVN的最年夜的一個沖破。由于GIT和SVN從概念上就分歧,我不知道GIT里是甚么特點與之對應。若是你有任何的線索,請在評論里奉獻出來與年夜家同享。

更新:有些讀者指出,我們可使用GIT的SHA-1來獨一的標識一個代碼快照。這個其實不能完全的取代SVN里輕易瀏覽的數字版本號。但,用處應當是不異的。

5.GIT的內容完全性要優于SVN:

GIT的內容存儲利用的是SHA-1哈希算法。這能確保代碼內容的完全性,確保在碰到磁盤故障和收集題目時下降對版本庫的粉碎。這里有一個很好的關于GIT內容完全性的會商 –http://stackoverflow.com/questions/964331/git-file-integrity

GIT和SVN之間只有這五處分歧嗎?固然不是。我想這5個只是“最根基的”和“最吸惹人”的,我只想到這5點。若是你發現有比這5點更有趣的,請同享出來,接待。

文章來歷:博客在線

“廣域創業網”的新聞頁面文章、圖片、音頻、視頻等稿件均為自媒體人、第三方機構發布或轉載。如稿件涉及版權等問題,請與

我們聯系刪除或處理,客服郵箱,稿件內容僅為傳遞更多信息之目的,不代表本網觀點,亦不代表本網站贊同

其觀點或證實其內容的真實性。

湖北11选5-top遗漏走势图 黑龙江省福彩快乐十分 股票行情300233 黑龙江十一选五开奖结果一定牛 江西省多乐彩 000157股票行情-和讯网 今天体育彩票中奖号码 辽宁快乐12前三遗漏数据 下载三分幸运农场 上海快3最新开奖 localhost 河北排列7历史开奖号码