集中式(SVN)和分布式(Git)版本控制系統的簡單比較
阿新 • • 發佈:2017-10-17
ron table targe 特點 相對 tps ble 12px pan
集中式(SVN) | 分布式(Git) | |
是否有中央服務器 | 有。開發人員需要從中央服務器獲得最新版本的項目然後在本地開發,開發完推送給中央服務器。因此脫離服務器開發者是幾乎無法工作的 | 沒有中央服務器,開發人員本地都有 Local Repository |
網絡依賴 | 必須要聯網才能工作,而且對網絡的依賴性較強,如果推送的文件比較大而且網絡狀況欠佳,則提交文件的速度會受到很大的限制。 | 分布式在沒有網絡的情況下也可以執行commit、查看版本提交記錄、以及分支操作,在有網絡的情況下執行 push 到 Remote Repository。 |
文件存儲格式 | 按照原始文件存儲,體積較大 | 按照元數據方式存儲,體積很小 |
是否有版本號 | 有 | 沒有 |
分支操作的影響 |
創建新的分支則所有的人都會擁有和你一樣的分支 |
分支操作不會影響其他開發人員 |
提交 | 提交的文件會直接記錄到中央版本庫 | 提交是本地操作,需要執行push操作才會到主要版本庫 |
以 Git 和 SVN 為例,分布式和集中式版本控制系統的特點:
圖片來源:廖雪峰的官方網站
git
- 適合分布式開發,強調個體。
- 公共服務器壓力和數據量都不會太大。
- 速度快、靈活。
- 任意兩個開發者之間可以很容易的解決沖突。
- 離線工作。
- 資料少
- 學習周期相對而言比較長。
- 不符合常規思維。
- 代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
圖片來源:廖雪峰的官方網站
SVN
- 管理方便,邏輯明確,符合一般人思維習慣。
- 易於管理,集中式服務器更能保證安全性。
- 代碼一致性非常高。
- 適合開發人數不多的項目開發。
集中式(SVN)和分布式(Git)版本控制系統的簡單比較