1. 程式人生 > >集中式(SVN)和分布式(Git)版本控制系統的簡單比較

集中式(SVN)和分布式(Git)版本控制系統的簡單比較

ron table targe 特點 相對 tps ble 12px pan

集中式(SVN) 分布式(Git)
是否有中央服務器 有。開發人員需要從中央服務器獲得最新版本的項目然後在本地開發,開發完推送給中央服務器。因此脫離服務器開發者是幾乎無法工作的 沒有中央服務器,開發人員本地都有 Local Repository
網絡依賴   必須要聯網才能工作,而且對網絡的依賴性較強,如果推送的文件比較大而且網絡狀況欠佳,則提交文件的速度會受到很大的限制。 分布式在沒有網絡的情況下也可以執行commit、查看版本提交記錄、以及分支操作,在有網絡的情況下執行 push 到 Remote Repository。
文件存儲格式   按照原始文件存儲,體積較大 按照元數據方式存儲,體積很小
是否有版本號 有   沒有
分支操作的影響

創建新的分支則所有的人都會擁有和你一樣的分支

分支操作不會影響其他開發人員
提交 提交的文件會直接記錄到中央版本庫 提交是本地操作,需要執行push操作才會到主要版本庫

以 Git 和 SVN 為例,分布式和集中式版本控制系統的特點:

技術分享

圖片來源:廖雪峰的官方網站

git

  • 適合分布式開發,強調個體。
  • 公共服務器壓力和數據量都不會太大。
  • 速度快、靈活。
  • 任意兩個開發者之間可以很容易的解決沖突。
  • 離線工作。
  • 資料少
  • 學習周期相對而言比較長。
  • 不符合常規思維。
  • 代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。

技術分享

圖片來源:廖雪峰的官方網站

SVN

  • 管理方便,邏輯明確,符合一般人思維習慣。
  • 易於管理,集中式服務器更能保證安全性。
  • 代碼一致性非常高。
  • 適合開發人數不多的項目開發。

技術分享

集中式(SVN)和分布式(Git)版本控制系統的簡單比較