版本控制系統
什么是版本控制
版本控制(Revision control)是一種在開發的過程中用於管理我們對文件、目錄或工程等內容的修改歷史,方便查看更改歷史記錄,備份以便恢復以前的版本的軟件工程技術。
版本控制的目的
實現跨區域多人協同開發
追蹤和記載一個或者多個文件的歷史記錄
組織和保護你的源代碼和文檔
統計工作量
並行開發、提高開發效率
跟蹤記錄整個軟件的開發過程
減輕開發人員的負擔,節省時間,同時降低人為錯誤
簡單說就是用於管理多人協同開發項目的技術
沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在軟件開發過程中將會引入
很多問題,如軟件代碼的一致性、軟件內容的冗余、軟件過程的事物性、軟件開發過程中的
並發性、軟件源代碼的安全性,以及軟件的整合等問題
版本控制可以做什么?
自動生成備份
知道改動的地方
隨時回滾
常見的版本控制器
主流的版本控制器有如下這些:
Git
SVN(Subversion) - 集中式的額版本控制系統
CVS(Concurrent Versions System)
VSS(Micorosoft Visual SourceSafe)
TFS(Team Foundation Server)
Visual Studio Online
版本控制產品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control
System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear
Vault),現在影響力大且使用廣泛的是 Git 與 SVN
版本控制分類
1、本地版本控制
記錄文件每次的更新,可以對每個版本做一個快照,或是記錄補丁文件,適合個人用,如RCS。
2、集中版本控制
所有的版本數據都保存在服務器上,協同開發者從服務器上同步更新或上傳自己的修改
所有的版本數據都存在服務器上,用戶的本地只有自己以前所同步的版本,如果不連網
的話,用戶就看不到歷史版本,也無法切換版本驗證問題,或在不同分支工作。而且,所有
數據都保存在單一的服務器上,有很大的風險這個服務器會損壞,這樣就會丟失所有的數據,
當然可以定期備份。代表產品:SVN、CVS、VSS
3、分布式版本控制
所有版本信息倉庫全部同步到本地的每個用戶,這樣就可以在本地查看所有版本歷史,
可以離線在本地提交,只需在連網時 push 到相應的服務器或其他用戶那里。
由於每個用戶那里保存的都是所有的版本數據,只要有一個用戶的設備沒有問題就可以恢復所有的數據,
但這增加了本地存儲空間的占用
