什么是分布式版本控制系統(tǒng)如筛?
以下VCS(version control system)為版本控制工具:
分布式和中央式的區(qū)別 在于,分布式 VCS 除了中央倉庫之外伪节,還有本地倉庫:團隊中每一個成員的機器上都有一份本地倉庫掀亩,這個倉庫里包含了所有的版本歷史悄泥,或者換句話說,每個人在自己的機器上就可以提交代碼劝堪、查看歷史冀自,而無需聯(lián)網(wǎng)和中央倉庫交互——當然,取而代之的秒啦,你需要和本地倉庫交互凡纳。
中央式的中央倉庫有兩個主要功能 :保存版本歷史、同步團隊代碼帝蒿。而在分布式 中荐糜,保存版本歷史的工作轉(zhuǎn)交到了每個團隊成員的本地倉庫中,中央倉庫就只剩下了同步團隊代碼這一個主要任務葛超。它的中央倉庫依然也保存了歷史版本暴氏,但這份歷史版本更多的是作為團隊間的同步中轉(zhuǎn)站。
分布式的優(yōu)點:
大多數(shù)的操作可以在本地進行绣张,所以速度更快答渔,而且由于無需聯(lián)網(wǎng),所以即使不在公司甚至沒有在聯(lián)網(wǎng)侥涵,你也可以提交代碼沼撕、查看歷史,從而極大地減小了開發(fā)者的網(wǎng)絡條件和物理位置的限制芜飘。
分布式的缺點:
由于每一個機器都有完整的本地倉庫务豺,所以初次獲取項目(git clone)的時候會比較耗時;
由于每個機器都有完整的本地倉庫嗦明,所以本地占用的存儲比中央式要高笼沥。
對于一般的程序項目而言,由于項目的大多數(shù)內(nèi)容都是文本形式的代碼,所以工程的體積都并不是很大奔浅,再加上文本內(nèi)容自身的特點馆纳,VCS 可以利用算法來把倉庫的體積極大地壓縮。這就導致汹桦,在實際中鲁驶,Git 等分布式 VCS 的倉庫體積并不大,初次獲取項目的耗時和本地倉庫的存儲占用都很小舞骆。所以對于大多數(shù)的程序項目而言钥弯,分布式 VCS 「尺寸大、初次下載慢」的問題其實并不嚴重葛作。