Introduction of Version Control/Git, SVN
什么是版本控制?
你可以把一個版本控制系統(縮寫VCS)理解為一個“數據庫”,在需要的時候,它可以幫你完整地保存一個項目的快照。當你需要查看一個之前的快照(稱之為“版本”)時,版本控制系統可以顯示出當前版本與上一個版本之間的所有改動的細節。版本控制系統會記錄所有對項目文件的更改。
SVN:是一種集中化的版本控制
有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。
好處就是每個人都可以在一定程度上看到項目中的其他人正在做些什么。 而管理員也可以輕松掌控每個開發者的權限,并且管理更加輕松。支持并行讀寫文件,支持代碼的版本化管理,功能包括取出、導入、更新、分支、改名、還原、合并等。大都采用圖形界面操作,直觀,上手快。
壞處就是如果中心數據庫所在的磁盤發生損壞,又沒有做恰當備份,毫無疑問你將丟失所有數據——包括項目的整個變更歷史,只剩下人們在各自機器上保留的單獨快照。而且必須聯網才能工作
GIT:是一種分布式的版本控制
GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞。
GIT的客戶端并不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。 因為每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份。
Git的代碼庫占用空間小,但是不支持中文,圖形界面支持差,使用難度大。不易推廣。