版本控制的演變

1.本地版本控制:

許多人習慣用復制整個項目目錄的方式來保存不同的版本,或許還會改名加上備份時間以示區(qū)別。
其中最流行的一種叫做 RCS,它的工作原理是在硬盤上保存補丁集(補丁是指文件修訂前后的變化);通過應用所有的補丁,可以重新計算出各個版本的文件內(nèi)容。

image.png

2.集中化的版本控制系統(tǒng)(CVCS)

不同系統(tǒng)上的開發(fā)者協(xié)同工作?
有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協(xié)同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。 多年以來,這已成為版本控制系統(tǒng)的標準做法。
諸如 CVS、Subversion 以及 Perforce 等

弊:要整個項目的歷史記錄被保存在單一位置,就有丟失所有歷史更新記錄的風險。

image.png

3.分布式版本控制系統(tǒng)(DVCS)

客戶端并不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。
何一處協(xié)同工作用的服務器發(fā)生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。 因為每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份。

像 Git、Mercurial、Bazaar 以及 Darcs 等

image.png

更進一步,許多這類系統(tǒng)都可以指定和若干不同的遠端代碼倉庫進行交互。籍此,你就可以在同一個項目中,分別和不同工作小組的人相互協(xié)作。 你可以根據(jù)需要設定不同的協(xié)作流程,比如層次模型式的工作流,而這在以前的集中式系統(tǒng)中是無法實現(xiàn)的。

很難理解svn和Git的區(qū)別,或者說優(yōu)勢。
svn commit是需要聯(lián)網(wǎng)的,svn中央服務器代碼一旦丟失就很難恢復。

分布式理論上是不需要中央服務器的,A和B是可以直接相互推送的,但是真實開發(fā)中A和B的電腦要相互訪問是很麻煩的。所以出現(xiàn)了github和OSGit。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容