版本控制工具的必要性、作用、分類和發展歷程


 
一、版本控制工具的作用和必要性
版本控制工具的作用:幫助我們記錄和跟蹤項目中各文件內容的修改變化。
記錄文件修改的手工做法:復制文件以備份,在備份的文件名中添加上日期和時間。
需要版本控制工具的原因:為了提高效率,我們希望這類操作是自動進行的,這是我們需要版本控制工具的原因。  
 
二、版本控制工具的分類
版本控制工具(Version Control System)的分為3類:
1、直接訪問式版本控制系統;
2、集中式版本控制工具,比如CVS、SVN;
3、分布式版本控制工具,比如git      
 
集中式版本控制工具和分布式版本控制工具的區別在於:開發人員之間相互同步修改內容的方式不同。
 
三、版本控制工具的發展歷程
VCS的發展歷程:
(1)、手工階段,沒有版本控制工具或者有但是不用版本控制工具。
(2)、早期VCS階段:             
這類系統要求系統的用戶必須登錄到版本庫所在的服務器才能訪問版本庫。            
局限性:存在可擴展性方面的問題。
(3)、集中式VCS階段:            
CVS和SVN解決上述早期版本控制工具的可擴展性問題。這類版本控制工具允許程序員通過網絡來獲取版本庫中的代碼,並且在修改之后提交回來。這類系統解決可擴展性問題是通過客戶端來解決的,客戶端可以有無數個,但是版本庫所在的服務端也還是只有一個,客戶端可以隨意安裝,這樣就解決了可擴展性的問題。           
具體的使用方法:每一個程序員在本地有一個工作目錄樹,其內容是該版本庫中最新的代碼。當他們在工作目錄樹中完成代碼修改之后,就把改動提交會該代碼庫。           
局限性:在本地工作目錄樹中只會看到代碼的最新版本,如果想要查詢歷史修改記錄,就必須與服務器上的版本庫打交道。這樣要和遠程的版本庫打交道,就必須使用網絡,但是即使今天的互聯網處於永不斷線的狀態,有的時候還是不能上網。所以分布式版本控制工具就解決了這個問題,以git為代表的分布式版本控制工具使每個用戶在本地都有自己的版本庫,而不是連接到公共服務器上的一個公共版本庫中去。
(4)、分布式版本控制工具階段:           
所有的版本控制工具都存儲在本地版本庫中,向版本庫提交代碼無需鏈接遠程版本庫,所有的歷史記錄都存儲在本地版本庫中,向版本庫提交代碼無須連接遠程版本庫,而是所有的版本數據都存放在本地版本庫中。          
 
分布式版本控制工具程序員之間如何傳遞各自的修改,如何同步呢?程序員還是將修改上傳到項目的主版本庫中去。
有兩種實現方式:(1)通過git的push操作直接把修改上傳到主版本庫;(2)生成包含少量修改的補丁包,把補丁包提交給項目維護人員,再由項目維護人員更新主版本庫。  
 
四、選擇版本控制工具時值得注意的問題
 
首先、版本控制工具它本身是一個工具,工具是比人工先進一些,但是我們依然可以選擇使用它,也可以選擇不使用它。          
比如在學校的時候一直就沒有使用過版本控制工具,寫論文、寫代碼都是在自己電腦上保存,每當自己寫的東西有一個新版本產生的時候,就用另存為來再存一份。  
 
其次、不要因為盲目比較版本控制工具的優劣。          
即使使用了版本控制工具,也還有不同的版本控制工具之分,有比較早期的cvs、svn,也有最新的git,我們在選用的時候可以按照自己的想法,熟悉什么就選用什么,沒有必要一味線性的看待問題,即不用覺得git一定比svn先進,所以使用git就比使用svn好,同樣,不要以為使用git就比使用svn高級之類的,能解決問題就好,理智看待這個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM