一、知識點
> 版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統
> 實際上可以對任何類型的文件進行版本控制。
1.1 特點
- 每次修改后進行提交,這樣就可以在需要的時候將某個文件回溯到之前的狀態。
- 可以比較文件的變化細節,查出最后是誰修改了哪些地方,從而找出導致怪異問題的原因。
- 就算你胡亂地把整個項目的文件改得面目全非,你照樣可以輕松恢復到原來的樣子。
二、版本控制方案
2.1 本地版本控制
- 大多都是采用某種簡單的數據庫來記錄文件的歷次更新差異。
2.2 集中化的版本控制
- 解決不同系統上的開發者協同工作。
- 管理員可以輕松掌控每個開發者的權限。
事分兩面,有好有壞。 這么做最顯而易見的缺點是中央服務器的單點故障。如果宕機一小時,那么在這一小時內,誰都無法提交更新,也就無法協同工作。 如果中心數據庫所在的磁盤發生損壞,又沒有做恰當備份,毫無疑問你將丟失所有數據——包括項目的整個變更歷史,只剩下人們在各自機器上保留的單獨快照。
2.3 分布式版本控制
- 客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。
- 每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份。
- 任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。
許多這類系統都可以指定和若干不同的遠端代碼倉庫進行交互。籍此,你就可以在同一個項目中,分別和不同工作小組的人相互協作。 你可以根據需要設定不同的協作流程,比如層次模型式的工作流。
三、流行的版本控制軟件
3.1 Git
在windows上的安裝
>
在Linux上的安裝
3.2 SVN
> SVN是一個開放源代碼的版本控制系統。
> SVN采用了分支管理系統,它的設計目標就是取代CVS。
> SVN可以針對各個目錄分別進行權限控制。
在Windows上的安裝
>
>
四、 參考資料