掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本文轉(zhuǎn)載自微信公眾號(hào)「JS每日一題」,作者灰灰。轉(zhuǎn)載本文請(qǐng)聯(lián)系JS每日一題公眾號(hào)。

版本控制(Version control),是維護(hù)工程藍(lán)圖的標(biāo)準(zhǔn)做法,能追蹤工程藍(lán)圖從誕生一直到定案的過程。此外,版本控制也是一種軟件工程技巧,借此能在軟件開發(fā)的過程中,確保由不同人所編輯的同一程序文件都得到同步
透過文檔控制,能記錄任何工程項(xiàng)目?jī)?nèi)各個(gè)模塊的改動(dòng)歷程,并為每次改動(dòng)編上序號(hào)
一種簡(jiǎn)單的版本控制形式如下:賦給圖的初版一個(gè)版本等級(jí)“A”。當(dāng)做了第一次改變后,版本等級(jí)改為“B”,以此類推
版本控制能提供項(xiàng)目的設(shè)計(jì)者,將設(shè)計(jì)恢復(fù)到之前任一狀態(tài)的選擇權(quán)
簡(jiǎn)言之,你的修改只要提到到版本控制系統(tǒng),基本都可以找回,版本控制系統(tǒng)就像一臺(tái)時(shí)光機(jī)器,可以讓你回到任何一個(gè)時(shí)間點(diǎn)
版本控制系統(tǒng)在當(dāng)今的軟件開發(fā)中,被認(rèn)為是理所當(dāng)然的配備工具之一,根據(jù)類別可以分成:
結(jié)構(gòu)如下圖所示:
優(yōu)點(diǎn):
缺點(diǎn):
結(jié)構(gòu)如下圖所示:
優(yōu)點(diǎn):
缺點(diǎn):
代表工具有SVN、CVS:
TortoiseSVN是一款非常易于使用的跨平臺(tái)的 版本控制/版本控制/源代碼控制軟件
CVS是版本控制系統(tǒng),是源配置管理(SCM)的重要組成部分。使用它,您可以記錄源文件和文檔的歷史記錄
老牌的版本控制系統(tǒng),它是基于客戶端/服務(wù)器的行為使得其可容納多用戶,構(gòu)成網(wǎng)絡(luò)也很方便
這一特性使得CVS成為位于不同地點(diǎn)的人同時(shí)處理數(shù)據(jù)文件(特別是程序的源代碼)時(shí)的首選
結(jié)構(gòu)如下圖:
優(yōu)點(diǎn):
分布式版本管理系統(tǒng)每個(gè)計(jì)算機(jī)都有一個(gè)完整的倉庫,可本地提交,可以做到離線工作,則不用像集中管理那樣因?yàn)閿嗑W(wǎng)情況而無法工作
代表工具為Git、HG:
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),旨在快速高效地處理從小型到大型項(xiàng)目的所有事務(wù)
特性:易于學(xué)習(xí),占用內(nèi)存小,具有閃電般快速的性能
使用Git和Gitlab搭建版本控制環(huán)境是現(xiàn)在互聯(lián)網(wǎng)公司最流行的版本控制方式
Mercurial是一個(gè)免費(fèi)的分布式源代碼管理工具。它可以有效地處理任何規(guī)模的項(xiàng)目,并提供簡(jiǎn)單直觀的界面
Mercurial是一種輕量級(jí)分布式版本控制系統(tǒng),采用 Python語言實(shí)現(xiàn),易于學(xué)習(xí)和使用,擴(kuò)展性強(qiáng)
版本控制系統(tǒng)的優(yōu)點(diǎn)如下:
記錄文件所有歷史變化,這是版本控制系統(tǒng)的基本能力
隨時(shí)恢復(fù)到任意時(shí)間點(diǎn),歷史記錄功能使我們不怕改錯(cuò)代碼了
支持多功能并行開發(fā),通常版本控制系統(tǒng)都支持分支,保證了并行開發(fā)的可行
多人協(xié)作并行開發(fā),對(duì)于多人協(xié)作項(xiàng)目,支持多人協(xié)作開發(fā)的版本管理將事半功倍
參考文獻(xiàn)
https://pm.readthedocs.io/vcs/understanding.html
https://zh.wikipedia.org/wiki/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流