一、是什么
版本控制(Version control),是維護工程藍圖的標准做法,能追蹤工程藍圖從誕生一直到定案的過程。此外,版本控制也是一種軟件工程技巧,借此能在軟件開發的過程中,確保由不同人所編輯的同一程序文件都得到同步
透過文檔控制,能記錄任何工程項目內各個模塊的改動歷程,並為每次改動編上序號
一種簡單的版本控制形式如下:賦給圖的初版一個版本等級“A”。當做了第一次改變后,版本等級改為“B”,以此類推
版本控制能提供項目的設計者,將設計恢復到之前任一狀態的選擇權
簡言之,你的修改只要提到到版本控制系統,基本都可以找回,版本控制系統就像一台時光機器,可以讓你回到任何一個時間點
二、有哪些
版本控制系統在當今的軟件開發中,被認為是理所當然的配備工具之一,根據類別可以分成:
- 本地版本控制系統
- 集中式版本控制系統
- 分布式版本控制系統
本地版本控制系統
結構如下圖所示:
優點:
- 簡單,很多系統中都有內置
- 適合管理文本,如系統配置
缺點:
- 其不支持遠程操作,因此並不適合多人版本開發
集中式版本控制系統
結構如下圖所示:
優點:
- 適合多人團隊協作開發
- 代碼集中化管理
缺點:
- 單點故障
- 必須聯網,無法單機工作
代表工具有SVN
、CVS
:
SVN
TortoiseSVN
是一款非常易於使用的跨平台的 版本控制/版本控制/源代碼控制軟件
CVS
CVS
是版本控制系統,是源配置管理(SCM)的重要組成部分。使用它,您可以記錄源文件和文檔的歷史記錄
老牌的版本控制系統,它是基於客戶端/服務器的行為使得其可容納多用戶,構成網絡也很方便
這一特性使得CVS
成為位於不同地點的人同時處理數據文件(特別是程序的源代碼)時的首選
分布式版本控制系統
結構如下圖:
優點:
- 適合多人團隊協作開發
- 代碼集中化管理
- 可以離線工作
- 每個計算機都是一個完整倉庫
分布式版本管理系統每個計算機都有一個完整的倉庫,可本地提交,可以做到離線工作,則不用像集中管理那樣因為斷網情況而無法工作
代表工具為Git
、HG
:
Git
Git
是目前世界上最先進的分布式版本控制系統,旨在快速高效地處理從小型到大型項目的所有事務
特性:易於學習,占用內存小,具有閃電般快速的性能
使用Git
和Gitlab
搭建版本控制環境是現在互聯網公司最流行的版本控制方式
HG
Mercurial
是一個免費的分布式源代碼管理工具。它可以有效地處理任何規模的項目,並提供簡單直觀的界面
Mercurial
是一種輕量級分布式版本控制系統,采用 Python
語言實現,易於學習和使用,擴展性強
三、總結
版本控制系統的優點如下:
- 記錄文件所有歷史變化,這是版本控制系統的基本能力
- 隨時恢復到任意時間點,歷史記錄功能使我們不怕改錯代碼了
- 支持多功能並行開發,通常版本控制系統都支持分支,保證了並行開發的可行
- 多人協作並行開發,對於多人協作項目,支持多人協作開發的版本管理將事半功倍