1.Git
目前世界上最先進的分布式版本控制系統。
git官網:https://git-scm.com/
2.版本控制
2.1什么是版本控制
版本控制(Revision control)是一種在開發的過程中用于管理我們對文件、目錄或工程等內容修改歷史,方便查看更改歷史記錄備份以便恢復以前的版本的軟件工程技術。
- 實現跨區域多人協同開發
- 追蹤和記載一個或者多個文件的歷史記錄
- 組織和保護你的源代碼和文檔
- 統計工作量
- 并行開發、提高開發效率
- 追蹤記錄整個軟件的開發過程
- 減輕開發人員的負擔,節省時間,同時降低人為錯誤
簡單來說就是用于管理多人協同開發項目的技術。
沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在軟件開發過程中將會引入很多問題,如軟件代碼的一致性、軟件內容的冗余、軟件過程的事物性、軟件開發過程中的并發性、軟件源代碼的安全性,以及軟件的整合等問題。
2.2版本控制分類
(1)本地版本控制
記錄文件每次的更新,可以對每個版本做一個快照,或是記錄補丁文件,適合個人用,如RCS。
(2)集中版本控制
所有的版本數據都保存在服務器上,協同開發者從服務器上同步更新或上傳自己的修改,本地只有自己以前所同步的版本,如果不聯網的話,就看不到歷史版本,也無法切換版本驗證問題,或者不同分支工作。而且所有數據都保存在單一的服務器上,有很大的風險這個服務器會損壞,這樣就會丟失所有的數據,當然可以定期備份。代表產品:SVN、CVS、VSS
(3)分布式版本控制
所有版本信息倉庫全部同步到本地的每個用戶,這樣就可以在本地查看所有版本歷史,可以離線在本地提交,只需要在連網時push到相應的服務器或其他用戶哪里。由于每個用戶那里保存的都是所有的版本數據,只要有一個用戶的設備沒有問題就可以恢復所有的數據,但這增加了本地存儲空間的占用。如:Git
3.Git與SVN
最主要的區別:
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而工作的時候,用的都是自己的電腦,所以首先要從中央服務器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工作,對網絡帶寬要求較高。
Git是分布式版本控制系統,沒有中央服務器,每個人的電腦就是一個完整的版本庫,工作的時候不需要聯網了,因為版本都在自己電腦上。協同的方法是這樣的:比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需要把各自的修改推送給對方,就可以互相看到對方的修改了。