SVN和GIT的區(qū)別?

SVN和GIT的區(qū)別?

1、背景介紹

在開發(fā)軟件或者進行文案工作時,經(jīng)常需要在原有的基礎(chǔ)上進行修改,但又擔心無法恢復原有內(nèi)容,因此一份文件可能會保存成多份,更可怕的是還得從堆積如山的文件中找出自己更改之前的內(nèi)容。版本控制系統(tǒng)可以記錄每次的文檔更改,并確保由不同人所編輯的同一文檔都得到更新,甚至還可以將數(shù)據(jù)恢復到以前的版本,所以大家也稱版本控制系統(tǒng)為神奇的“時間機器”。

2、什么是SVN?

SVN是Subversion的簡稱,是一個自由開源的版本控制系統(tǒng),支持大多數(shù)常見的操作系統(tǒng)。作為一個開源的版本控制系統(tǒng),Subversion管理著隨時間改變的數(shù)據(jù)。這些數(shù)據(jù)集中放置在一個中央資料檔案庫中。這個檔案庫很像一個普通的文件服務(wù)器,它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽文件的變動歷史。

集中式版本控制系統(tǒng)

版本庫是集中存放在中央服務(wù)器的,而工作的時候,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本,然后開始工作,工作結(jié)束后,再把自己的文件推送給中央服務(wù)器。

3、什么是git?

Git是開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目。分布式相比于集中式的最大區(qū)別在于開發(fā)者可以提交到本地,每個開發(fā)者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。通俗的說,就是一個管理代碼歷史記錄的工具,當多人協(xié)作時可以相互推送各自的修改。

分布式代碼管理

分布式版本控制系統(tǒng)根本沒有“中央服務(wù)器”,每個人的電腦上都是一個完整的版本庫服務(wù)器。工作的時候,就不需要聯(lián)網(wǎng)了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協(xié)作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

4、SVN和Git有什么區(qū)別?

1.SVN屬于集中化的版本控制系統(tǒng),而Git是一個分布式版本控制系統(tǒng)。使用SVN,每個版本庫有唯一一個“官方地址”,每個用戶都從這個唯一地址獲取代碼、數(shù)據(jù);獲取代碼庫的更新,也只能連接到這個唯一的代碼庫,同步以取得最新數(shù)據(jù);提交必須有網(wǎng)絡(luò)連接(非本地版本庫)。

2.GIT跟SVN一樣有自己的集中式版本庫或服務(wù)器。但GIT更傾向于被使用于分布式模式,也就是每個開發(fā)人員從中心版本庫/服務(wù)器上check out代碼后會在自己的機器上克隆一個自己的版本庫。可以這樣說,如果你被困在一個不能連接網(wǎng)絡(luò)的地方時,你仍然能夠提交文件,查看歷史版本記錄,創(chuàng)建項目分支,對一些人來說,這好像沒多大用處,但當你突然遇到?jīng)]有網(wǎng)絡(luò)的環(huán)境時,這個將解決你的大麻煩。

3.GIT把內(nèi)容按元數(shù)據(jù)方式存儲,而SVN是按文件:GIT會在本地存儲項目下的所有文件,因為本地存儲的是一個遠端的克隆版本,而svn則只需要checkout你需要的那部分代碼文件到本地即可。所以通常本地的git目錄的大小要遠遠大于svn的目錄。

4.SVN的全局版本號,每一個事物處理(即一次提交)都具有整個版本庫全局唯一的版本號。SVN 的版本號是連續(xù)的,可以預判下一個版本號。因為 SVN 是集中式版本控制,當然很容易實現(xiàn)版本號的連續(xù)性。GIT是分布式版本控制,多人在同一個版本庫里工作,如果大家都用1,2,3……作為版本號,那肯定就沖突了。所以采用 40 位長的哈希值作為版本號,版本號是全球唯一的。

5.GIT的內(nèi)容完整性要優(yōu)于SVN:GIT的內(nèi)容存儲使用的是SHA-1哈希算法。這能確保代碼內(nèi)容的完整性,確保在遇到磁盤故障和網(wǎng)絡(luò)問題時降低對版本庫的破壞。

鳴謝!

感謝大家觀看!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 大家好,我是IT修真院北京分院第23期的學員郭婷婷,一枚正直純潔善良的WEB前端程序員。 今天給大家分享一下,修真...
    茶紙團閱讀 1,084評論 0 4
  • SVN SVN 作為一個開源的版本控制系統(tǒng),管理著碎時間改變的數(shù)據(jù),這些數(shù)據(jù)放置在一個中央資料檔案庫(reposi...
    Android_小生閱讀 540評論 0 4
  • Git不僅僅是個版本控制系統(tǒng),它也是個內(nèi)容管理系統(tǒng)(CMS)、工作管理系統(tǒng)等。如果你曾是一個使用過SVN背景的人,...
    博為峰51Code教研組閱讀 917評論 0 0
  • &開發(fā)過程中離不開源代碼的管理, 目地:為了解決在軟件開發(fā)過程中,由源代碼引發(fā)的各種蛋疼、繁瑣的問題。 目前開發(fā)使...
    早起的蟲兒子被鳥吃閱讀 2,460評論 0 16
  • 鴛鴦陣里有幾般,儒將戰(zhàn)前影闌珊。狼筅奇招水軍散,虎蹲巨炮肝膽寒。南征倭寇平海波,北御韃靼歸金鑾封侯封將非我意,威震...
    我還是光之帝皇俠閱讀 258評論 0 2