Git和Svn的區別

 

Git和Svn的區別
  Git(分佈式版本控制系統) Svn(集中式版本控制系統)
定義  Git是目前世界上最早進的分佈式版本控制系統。 SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,說得簡單一點SVN就是用於多我的共同開發同一個項目,共用資源的目的。
工做流程

 

1.寫代碼安全

2.提交到本地版本庫服務器

3.從服務器拉回服務器的當前版本庫,並解決服務器版本庫與本地代碼的衝突網絡

4.將遠程庫與本地代碼合併結果提交到本地版本庫分佈式

5.將本地版本庫推到服務器svn

1.寫代碼性能

2.從服務器拉回服務器的當前版本庫,並解決服務器版本庫與本地代碼的衝突開放源代碼

3.將本地代碼提交到服務器版本控制

是否有中央服務器

沒有中央服務器,開發人員本地都有 Local Repositoryblog

 有。開發人員須要從中央服務器得到最新版本的項目而後在本地開發,開發完推送給中央服務器。所以脫離服務器開發者是幾乎沒法工做的資源

網絡依賴

 分佈式在沒有網絡的狀況下也能夠執行commit、查看版本提交記錄、以及分支操做,在有網絡的狀況下執行 push 到 Remote Repository。

 必需要聯網才能工做,並且對網絡的依賴性較強,若是推送的文件比較大並且網絡情況欠佳,則提交文件的速度會受到很大的限制。

文件存儲格式

按照元數據方式存儲,體積很小

按照原始文件存儲,體積較大

分支操做影響

分支操做不會影響其餘開發人員

建立新的分支則全部的人都會擁有和你同樣的分支

提交過程

提交是本地操做,須要執行push操做纔會到主要版本庫

提交的文件會直接記錄到中央版本庫

優點

1.分佈式管理:Git是沒有中心服務器的,每一個人機器上都是一個完整的庫

2.離線工做:(1)斷網提交至本地庫(2)本地回滾

3.分支策略:在Git實際開發中分支的分離和合並是屬於平常操做,開啓和合並分支成本相比SVN要小得多:SVN是複製一份代碼到分支目錄,Git則是在分支點作一下標。

 

1.集中式管理,管理方式在服務端配置好,客戶端只須要同步提交便可,使用方便,操做簡單,很容易就能夠上手

2.在服務端統一控制好訪問權限,利用代碼的安全管理。

3.全部的代碼以服務端爲準,代碼一致性高。

缺點

1.模式上比SVN更加複雜

2.代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部代碼和版本信息  

1.全部操做都須要經過服務端進行同步,這會致使服務器性能要求比較高。若是服務器宕機了就沒法提交代碼了。

2.分支管理不靈活,svn分支是一個完整的目錄,且這個目錄擁有完整的實際文件,這些操做都是在服務端進行同步的,不是本地化操做,若是要刪除分支,也是須要將遠程的分支進行刪除,這會致使你們都得同步

3.須要連網,若是沒法鏈接到服務器就沒法提交代碼

相關文章
相關標籤/搜索