您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Git和SVN的區別是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
??Git按照元數據的方式將文件的一個版本存入了一個類似與K/V數據庫,而SVN是按照文件的方式進行一個存儲。Git的內部有一個類似于K/V的數據庫,我把他理解為是一個Map<K,V>,我們將內容存儲到Git的數據庫內后,Git會返回一個Key給我們,這個Key是唯一的(把一模一樣的內容上傳進去,這個key也是唯一的)。演示如下:
??1、使用git init demo
命令創建一個Git倉庫;
??2、使用cd demo
進入demo這個Git倉庫下;
??3、使用echo 'this is demo' >> demo.txt
命令創建一個demo.txt文件,并在文件內寫入this is demo;使用ls
命令查看是否有demo.txt這個文件;使用vim demo.txt
查看demo.txt文件內是否為’this is demo’;
??4、使用git hash-object -w demo.txt
命令將demo.txt文件里面的內容存儲進Git的數據庫中,其中第二個紅色框框的內的值"25b3c07137f646bf05bdd00c42d2a4c5bc831bb7"就是Git的數據庫返回給我們的K;
??5、可以通過git cat-file -p 25b3c07137f646bf05bdd00c42d2a4c5bc831bb7
命令去將值取出來;
??6、再使用命令創建一個demo1.txt文件,里面同樣放進去的是"this is demo"看看他們的K是否一樣;
??這就是Git存儲數據的方式了,SVN不同,SVN存儲數據的方式其實就是把文件復制一份進行存儲。
??從本地把文件推送到遠程服務,SVN只需要commit而Git需要add、commit、push三個步驟。
??使用SVN開發者只要把文件修改了,只要commit其他開發人員就可以直接checkout下來。如下圖所示:
??但是Git就不相同了,Git如果要從本地將修改后的文件提交進入遠程倉庫再從遠程倉庫將其他開發者修改后的文件checkout下來需要以下幾個步驟:
??1、首先把修改后的文件通過add添加到我們的暫存區;
??2、然后通過commit命令將暫存區的文件提交到本地倉庫;
??3、最后通過push命令將本地倉庫的文件存入到遠程倉庫;
??4、要通過clone命令將遠程倉庫的文件拉到本地倉庫;
??5、最后通過checkout將本地倉庫的內容取出來;
Git使用過程如下圖所示:
??Git是一個分布式的管理系統,而SVN是遠程集中式的管理系統。
??如果說SVN的遠程倉庫掛掉了,那我的本地項目再也不能做提交,也不能做分支的切換,也不能夠干和版本管理相關的任何事情,這就是集中式管理的缺陷了。集中式管理方式如下圖所示:
??在項目內有一個Git倉庫,也就是說在本地一個項目包含一個完整Git倉庫,Git倉庫是在項目內的,遠程倉庫能干的事情本地的Git倉庫也能干。本地倉庫和遠程倉庫通過四種主要傳輸協議相關聯(本地協議、Http協議、SSH協議、Git協議)。Git還支持遠程倉庫里面的多個遠程倉庫。
關于Git和SVN的區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。