前言:何謂版本控制系統吶?有兩種說法:一種叫法為SCM,==source code management (源代碼管理系統)另一種說法為VCS,==version control system (版本控制系統),既然兩種叫法都可以的話,姑且把她叫成版本控制系統吧,從名稱不難看出此系統一是用來解決代碼 ...
前言:何謂版本控制系統吶?有兩種說法:一種叫法為SCM,==source code management (源代碼管理系統)另一種說法為VCS,==version control system(版本控制系統),既然兩種叫法都可以的話,姑且把她叫成版本控制系統吧,從名稱不難看出此系統一是用來解決代碼的其二是用來更新版本的。
發展歷史
剛開始並沒有版本控制系統一說,很多人編寫代碼的過程中會把代碼存起來,這樣越來越多的代碼寫在一個文件中,帶來了太大的冗餘,也對修改代碼帶來了很大的不便捷的情況,在一本《程式員修煉之道:從小工到專家》書中提到一個例子說老闆問下麵的員工說昨天的進度怎麼樣,代碼有沒有做出來?其中有點員工會說老闆我沒做出來,有的員工卻說自己做出來了,但是被貓吃了。WHAT!!!這尼瑪。。。所以後來慢慢為瞭解決在開發過程中,經常需要對一個文件進行修改甚至刪除,但是我們又希望能夠保存這個文件的歷史記錄,如果通過備份,那麼管理起來會非常的複雜這些問題,提出了版本控制系統。
什麼是版本控制系統?
版本控制是一種記錄一個或若幹文件內容變化,以便將來查閱特定版本修訂情況的系統管理,我們開發當中的文件或者資源,特別是多人的開發時更是離不開!
版本控制系統實現哪些功能呢?
記錄文件的所有的歷史變化
隨時可恢復到任何一個歷史狀態
多人協作開發或修改
對修改後的錯誤恢復
多功能的並行開發
版本控制系統的分類?
本地版本控制系統(Local vcs)
優點:簡單,管理文本文件
缺點:只適合少量的文件 不支持網路 不支持基於項目的管理,無法實現多人協作 支持的文件類型比較單一
主要的代表:RCS(Revision C ontrol System
實現模式:
集中化版本控制系統(Centralized vcs)
優點:適合多人團隊協作開發 代碼集中管理
缺點:出現單點故障,恢復難度大,必須連接網路,無法單機本地工作
代表:CVS(Concurrent Version System) SUBversion
實現模式:
分散式版本控制系統(Distributed VCS)
優點:適合多人團隊協作開發,代碼集中化管理,可以離線工作,每個電腦都有一個完整倉庫 (每個電腦都是一個倉庫)
代表:Git,Mercurial
實現模式:
未完待續。。。。