场景
记得在毕业答辩,写毕业论文的时候,导师会让我一遍遍改论文,为了确保改之后,可以和之前的对比,并且做个备份以免改错,通常都会本地在电脑上在copy一份,叫什么某某修改前1版或者v1,v2等等,然后在去改。这样随这时间的推移,电脑上的版本也就是copy的文件就会越来越多,为了解决这个问题,出现了以下方案
方案一:本地版本控制
为了解决以上这个问题,就有人开发了本地版本工具,使用这个工具,本地就只有一个文件了,工具会帮助你创建你的版本文件,只是你看不到,工具会隐藏起来这些版本文件,统一帮你管理,但是本质上还是copy文件,这里要说明下,这个时候文件保存依旧在是本地电脑上,如果其他同学需要和你一起修改,那这种方式就有问题了,所以后面又出现了集中式版本控制
image.png
方案二:集中式版本控制
会把所有的版本都存到中央服务器,其他同学都会重这个中央服务器拿版本文件,也就是说中央服务器管理所有版本,每位同学都只是保留一个版本,这样就解决了,本地管理方案下文件共享的问题,典型的应用就是SVN,但是这种方式也有个明显的缺点,就是当网络出现问题的时候,A、B两位同学是没办发把修改的版本同步到中央服务器的,并且本地电脑上也是没有任何的版本记录。随着时间的推移,又出现了另外一个版本管理工具:分布式版本控制(GIT),它的出现就解决了集中式版本控制的网络缺陷的问题和版本记录问题
image.png
方案三:分布式版本控制
和集中式版本控制一样,分布式也是有中央服务器的概念,但是分布式和集中式最大的区别就是,分布式管理工具会使每位同学的电脑上都会保留所有的版本,这样即便网络出现问题或者某一端出现问题的时候依旧保留版本或者文件的完整性,大家仍然可以进行版本的控制,等当有网路的时候,在同步到中央服务器,典型的工具就是GIT
image.png
为什么要有版本记录
1、防止线上版本出问题,可以回滚
2、对以往代码迭代进行记录,方便以后可以浏览