版本控制系統(VCS)確保多人協作開發中,同一文件的不同版本得到有效管理。通俗說:分散各地的團隊成員可在不同時候修改同一項目,系統智能合并變更,衝突時人工介入。
早期通過複製項目目錄備份,命名含時間戳。缺點:易混淆工作目錄、誤刪難恢復。
改進:使用數據庫記錄文件差異補丁。代表工具 RCS,至今 Mac OS X 開發者工具仍內置。原理:保存補丁,通過疊加計算各版本內容。

圖 1-1 本地版本控制系統
為解決跨機器協作,引入單一中心服務器(CVS、SVN、Perforce)。優勢:權限管控易、進度可見、管理簡單。

圖 1-2 集中化版本控制系統
致命弱點:單點故障。服務器宕機無法提交;磁盤損壞且無備份將丟失所有歷史。
Git、Mercurial、Bazaar、Darcs 等。核心差異:客戶端鏡像完整倉庫(含完整歷史),而非僅獲取最新快照。

圖 1-3 分布式版本控制系統
在 VSS、CVS、SVN 等集中式工具普及時,Git 以分布式架構解決了單點故障、離線工作、分支管理痛苦等核心痛點,成為現代軟件開發事實標準。