自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試官:說(shuō)說(shuō)你對(duì)版本管理的理解?常用的版本管理工具有哪些?

開(kāi)發(fā) 開(kāi)發(fā)工具
版本控制(Version control),是維護(hù)工程藍(lán)圖的標(biāo)準(zhǔn)做法,能追蹤工程藍(lán)圖從誕生一直到定案的過(guò)程。此外,版本控制也是一種軟件工程技巧,借此能在軟件開(kāi)發(fā)的過(guò)程中,確保由不同人所編輯的同一程序文件都得到同步。

[[415752]]

本文轉(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)圖從誕生一直到定案的過(guò)程。此外,版本控制也是一種軟件工程技巧,借此能在軟件開(kāi)發(fā)的過(guò)程中,確保由不同人所編輯的同一程序文件都得到同步

透過(guò)文檔控制,能記錄任何工程項(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)今的軟件開(kāi)發(fā)中,被認(rèn)為是理所當(dāng)然的配備工具之一,根據(jù)類別可以分成:

  • 本地版本控制系統(tǒng)
  • 集中式版本控制系統(tǒng)
  • 分布式版本控制系統(tǒng)

本地版本控制系統(tǒng)

結(jié)構(gòu)如下圖所示:

優(yōu)點(diǎn):

  • 簡(jiǎn)單,很多系統(tǒng)中都有內(nèi)置
  • 適合管理文本,如系統(tǒng)配置

缺點(diǎn):

  • 其不支持遠(yuǎn)程操作,因此并不適合多人版本開(kāi)發(fā)

集中式版本控制系統(tǒng)

結(jié)構(gòu)如下圖所示:

優(yōu)點(diǎn):

  • 適合多人團(tuán)隊(duì)協(xié)作開(kāi)發(fā)
  • 代碼集中化管理

缺點(diǎn):

  • 單點(diǎn)故障
  • 必須聯(lián)網(wǎng),無(wú)法單機(jī)工作

代表工具有SVN、CVS:

SVN

TortoiseSVN是一款非常易于使用的跨平臺(tái)的 版本控制/版本控制/源代碼控制軟件

CVS

CVS是版本控制系統(tǒng),是源配置管理(SCM)的重要組成部分。使用它,您可以記錄源文件和文檔的歷史記錄

老牌的版本控制系統(tǒng),它是基于客戶端/服務(wù)器的行為使得其可容納多用戶,構(gòu)成網(wǎng)絡(luò)也很方便

這一特性使得CVS成為位于不同地點(diǎn)的人同時(shí)處理數(shù)據(jù)文件(特別是程序的源代碼)時(shí)的首選

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

結(jié)構(gòu)如下圖:

優(yōu)點(diǎn):

  • 適合多人團(tuán)隊(duì)協(xié)作開(kāi)發(fā)
  • 代碼集中化管理
  • 可以離線工作
  • 每個(gè)計(jì)算機(jī)都是一個(gè)完整倉(cāng)庫(kù)

分布式版本管理系統(tǒng)每個(gè)計(jì)算機(jī)都有一個(gè)完整的倉(cāng)庫(kù),可本地提交,可以做到離線工作,則不用像集中管理那樣因?yàn)閿嗑W(wǎng)情況而無(wú)法工作

代表工具為Git、HG:

Git

Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),旨在快速高效地處理從小型到大型項(xiàng)目的所有事務(wù)

特性:易于學(xué)習(xí),占用內(nèi)存小,具有閃電般快速的性能

使用Git和Gitlab搭建版本控制環(huán)境是現(xiàn)在互聯(lián)網(wǎng)公司最流行的版本控制方式

HG

Mercurial是一個(gè)免費(fèi)的分布式源代碼管理工具。它可以有效地處理任何規(guī)模的項(xiàng)目,并提供簡(jiǎn)單直觀的界面

Mercurial是一種輕量級(jí)分布式版本控制系統(tǒng),采用 Python語(yǔ)言實(shí)現(xiàn),易于學(xué)習(xí)和使用,擴(kuò)展性強(qiáng)

三、總結(jié)

版本控制系統(tǒng)的優(yōu)點(diǎn)如下:

記錄文件所有歷史變化,這是版本控制系統(tǒng)的基本能力

隨時(shí)恢復(fù)到任意時(shí)間點(diǎn),歷史記錄功能使我們不怕改錯(cuò)代碼了

支持多功能并行開(kāi)發(fā),通常版本控制系統(tǒng)都支持分支,保證了并行開(kāi)發(fā)的可行

多人協(xié)作并行開(kāi)發(fā),對(duì)于多人協(xié)作項(xiàng)目,支持多人協(xié)作開(kāi)發(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

 

責(zé)任編輯:武曉燕 來(lái)源: JS每日一題
相關(guān)推薦

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-08-09 07:47:40

Git面試版本

2020-12-01 08:47:36

Java異常開(kāi)發(fā)

2020-06-12 15:50:56

options前端服務(wù)器

2021-09-26 10:57:16

集合操作場(chǎng)景

2021-09-27 06:50:04

樹(shù)非線性數(shù)據(jù)

2021-09-09 07:21:26

TypeScript 高級(jí)類型

2021-09-16 07:52:18

算法應(yīng)用場(chǎng)景

2019-05-10 10:50:04

Spring AOPJDK動(dòng)態(tài)代理CGLIB動(dòng)態(tài)代理

2021-08-20 08:33:19

操作系統(tǒng)OS

2021-11-09 08:51:13

模式命令面試

2020-12-04 06:27:04

序列化面試官Java

2021-11-05 07:47:56

代理模式對(duì)象

2021-11-03 14:10:28

工廠模式場(chǎng)景

2021-11-02 22:04:58

模式

2021-11-10 07:47:49

組合模式場(chǎng)景

2022-02-21 17:24:18

序列化對(duì)象存儲(chǔ)

2021-08-16 08:33:26

git

2021-08-11 08:53:23

Git命令面試

2024-07-26 08:10:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)