简述对版本控制认识(SVN,GIT)

一、什么是版本控制

我们知道,如果多台计算机在同一个局域网中,是可以进行局域网文件共享的。共享者可以通过设置把自己文件共享给他人进行阅读和修改。

对于同一份共享文件,如果又多个人需要修改的话会发生什么事情呢?假设现在有三个人,A分享了文件夹coding,其中包含了三个文件coding1.png,coding2.png,coding3.png,B和C需要对这份文件进行修改。

B和C分别把coding文件夹拷贝到自己的电脑上,然后进行修改,改完之后需要再把自己修改上传上去。B先改完了之后把自己的文件上传上去,覆盖了A的分享。之后C也改完了,也把自己的改动上传上去。这样,C就会把B的修改覆盖掉。

为了上述这种问题,就需要通过一种方式来在C想要上传文件的时候来提醒他,告诉他需要考虑到B已经改过文件的事情。比较好的方式就是通过版本控制。

如果使用了版本控制系统,每一个团队成员都可以在任何时间对任何文件毫无顾虑的进行修改,版本控制系统可以提醒我们文件修改冲突,甚至可以帮我们自动把多个人的改动合并到一起。

有了版本控制,我们还可以回溯查看以前某一个版本中具体文件的内容,还可以查看某一次改动的变更内容。非常适合团队协作。

二、版本控制的的方式

2.1 本地版本控制系统

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单。不过坏处也不少:有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复。
在这里插入图片描述
为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。
在这里插入图片描述

2.2 集中化的版本控制系统

接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作?于是,集中化的版本控制系统应运而生。
在这里插入图片描述
这类系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

这种做法带来了许多好处,特别是相较于老式的本地版本来说。现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理起来也轻松容易的多。

2.3 分布式版本控制系统

集中化最显而易见的缺点是中央服务器的单点问题。如果中央服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。
在这里插入图片描述
于是分布式版本控制系统面世了。在这类系统中,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页