版本控制介绍及使用

介绍

定义

  1. 版本控制(Revision Control)是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。
  2. 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

它将什么时候、什么人更改了文件的什么内容等信息忠实地记录下来,每一次文件的改变,文件的版本号都将增加,确保在开发过程中由不同人所编辑的内容都得到更新。
另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。
一般情况下我们仅对软件源代码作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。
使用版本控制系统可以将文件回溯到之前的某个时间点,甚至将整个项目都回退到过去某个时间点的状态。
可以比较同一文件不同时间点的变化细节,查出最后是谁修改了哪个地方,导致出现问题,谁在何时报告了某个功能缺陷等等,版本控制系统中一般都带有文件比较工具。
使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子,但额外增加的工作量却微乎其微。

原理

透过文档控制(documentation control)记录程序各个模组的改动,并为每次改动编上序号。

集中式

一个单一的集中管理的中央服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
如CVS,Subversion 以及 Perforce 等。


每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。
显而易见的缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。如果中央服务器的磁盘发生故障,碰巧没做备份,会有丢失数据的风险。

分布式

客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
如Git,Mercurial,Bazaar 以及 Darcs 等。


分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

常见概念

版本号

3部分构成,主版本号+次版本号+修改号。主版本号只有当系统在结构和功能上有重大突破改进后才发生变化;次版本号有2位;修改号8位,采用提交时的日期,系统进行任何修改后,修改号都要随之改变。如:V3.31.20180920
各软件系统应该有显示详细版本号的功能,例如help菜单下的about功能。

权限控制

在不同的项目中给与不同的人员不同的权限(读\写\删\增)

文件比较工具

方便快速的比较两个文件的不同之处
如:Beyond Compare

常用的版本控制系统

Git:
分布式


SVN:
集中式


VSS:


CVS:


使用(以Git为例)

基于Git的项目托管平台:GitHub,GitLab,码云,腾讯研发云等

安装Git

Git官方网站
https://git-scm.com/

Git官方简中教程
https://git-scm.com/book/zh/v2

TortoiseGit

推荐安装TortoiseGit,有很人性化的图形操作界面,还有简体中文语言包(需单独下载)
官网https://tortoisegit.org/
先安装TortoiseGit,再安装语言包

初始化

有两种方式:
假如远程仓库地址为

 https://github.com/itwhy1994/ProjectName

在托管平台上新建代码库,然后克隆到本地

在平台建立新仓库

// 克隆远程仓库到本地
git clone https://github.com/itwhy1994/ProjectName

// 添加文件到版本库中,‘.’代表添加目录下所有文件,也可添加指定的某文件
git add .

// 强行添加忽略文件到代码库中
git add -f FileName

// 提交修改到版本库中,引号中为注释内容
git commit -m "comment"

// 推送到远程仓库
git push

//从远程仓库更新,工作前一定记得进行更新
git pull

本地先建立代码库,再推送到远程仓库或与远程仓库建立关联

先在本地建立好代码文件夹,然后进入文件夹

// 初始化代码仓库
git init

// 与远程仓库关联
git remote add origin https://github.com/itwhy1994/ProjectName

//第一次推送到远程
git push -u origin master

注意事项

  1. 编写代码前一定先从仓库更新!!!避免其他人更改了代码,导致你更改后代码冲突,无法提交.
  2. 编译器或IDE等根据代码生成的文件不要加入版本控制中,以免造成不必要的空间占用和更新时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值