版本管理工具是干什么用的绞旅?
1.備份文件:
功能類似于u盤存儲電影恍飘,版本管理工具用于備份存儲代碼文件累榜。
2.記錄歷史:
每一次對文件的某一行進行修改的時間卿吐、修改人及歷史版本都會進行存儲把夸,可回溯而线。
3.回到過去:
因每次提交都會備份,所以即使某個文件被刪除恋日,并且刪除操作已提交給版本管理工具吞获,該文件都可通過歷史備份進行恢復(fù)。如時光機谚鄙,可回到任意過去時刻的狀態(tài)各拷。
4.多端共享:
不同設(shè)備工作,可異地闷营。
5.團隊協(xié)作:
幫助解決團隊協(xié)作中的沖突烤黍,并盡可能降低負面影響。
版本管理工具的歷史
cvs: 創(chuàng)于荷蘭一大學(xué)實驗室傻盟,是版本管理工具始祖速蕊,屬集中式版本管理工具
svn: 創(chuàng)于某國外公司,為解決cvs的眾多bug娘赴,有眾多用戶规哲,當時的開源文件和很多公司在進行開發(fā)時均使用svn,屬集中式版本管理工具诽表。
**git: ** linux核心創(chuàng)造者創(chuàng)造了git唉锌,現(xiàn)是極客的主流版本管理工具,屬分布式版本管理工具竿奏。
github: 程序員社區(qū)網(wǎng)站袄简,程序員可托管自己的軟件庫,但是該托管需要基于git來完成泛啸。
集中式和分布式版本管理工具
集中式版本管理工具
如網(wǎng)盤绿语,最新文件放至中心服務(wù)器,每當更新時從中心服務(wù)器拿出文件進行修改候址,修改后再同步至中心服務(wù)器吕粹。
優(yōu):只要能連上中心服務(wù)器,就可以把最新文件放至中心服務(wù)器岗仑。
劣:當不可以聯(lián)網(wǎng)時匹耕,就不可更新文件,無法工作赔蒲。同時泌神,若中心服務(wù)器崩潰良漱,所有文件和操作全部丟失。
例:cvs,svn
分布式版本管理工具
每個擁有版本庫的人都可在不聯(lián)網(wǎng)的情況下快速完成文件提交欢际、查看記錄和刪除等操作母市。它不擁有中心服務(wù)器,每個支端都擁有完整代碼庫损趋,各支端只要相互交換或推送新修改即可患久。但通常情況下,會有一個支端充當中心服務(wù)器浑槽,其作用只是用于方便交換修改蒋失,沒有該中心依舊可以工作。分布式版本管理工具的效率要高于集中式版本管理工具桐玻。
優(yōu):在無聯(lián)網(wǎng)條件的情況下也可對文件進行更新操作篙挽。當“中心服務(wù)器”或某支端代碼庫崩潰時,不會導(dǎo)致所有文件全部丟失镊靴,因每個支端都存有全套代碼庫铣卡。
例:git
參考:
http://www.imooc.com/learn/208(第1,2章)
http://www.zhihu.com/question/25577853