Git: 一、版本控制系统介绍 - Go语言中文社区

Git: 一、版本控制系统介绍


版本控制

什么是版本控制

版本控制是一套类似日志系统,用来保存文件内容变更记录的系统。

版本控制作用

版本控制可以帮助我们将文件的修改记录进行回溯到之前的状态,然后,就可以对比文件中的变化细节。

可以查到的信息诸如:修改操作人、修改的文件内容、修改时间等。

如果有人恶意删除某些文件代码信息,这样我们就可以通过版本控制,将代码进行回溯,也可以查到相关修改人,并予以惩处。

版本控制系统的种类

  • 本地版本控制系统
  • 集中式版本控制系统
  • 分布式版本控制系统

简单的本地版本控制

最原始的版本控制就是,拷贝整个项目文件,作为一个固定版本进行存储,并且加上文件修改的时间作为标识。

这样做的优点就是:简单、快捷。

伴随而来的缺点,就是当我们误操作将本地工程文件进行覆盖,这样的结果将是灾难性的。因为覆盖文件的操作是不可逆。

为了解决这种问题,人们后来开发出了许多本地版本控制系统。简单的思路就是利用数据库来记录文件的历次更新差异。

这里写图片描述

集中化版本控制系统(CVCS)

集中化版本控制是利用一台主服务器,保存所有文件的修订版本,而协同工作的人们通过本机PC,连接到这台主服务器上。这样就可以完成取出最新的文件或者提交更新操作。

这里写图片描述

相比本地版本控制系统,集中化版本控制系统的优势主要体现在多人协同工作。同时,不同开发者通过被授予相应的权限就可以完成查阅或更新提交操作了。

这种系统设计缺点也很突出,如果集中服务器宕机,那么在这一段时间内,任何人都无法进行任何操作。如果集中服务器数据有损毁,而个人本地没有任何完整备份的话,那么这就会造成除了保存本地的数据,其他数据均被丢失。

代表应用

  • SVN
  • CVS
  • Perforce

分布式版本控制系统(DVCS)

在分布式版本控制系统中,PC客户端中不只是获取到最新版本的文件快照,而是把代码仓库完整的拷贝的本机。这么一来,任何一处协同工作的服务器发送故障,时候都可以用任何镜像出来的本地仓库进行恢复。
因为,每一次的git clone操作,实际上都是一次对代码仓库的完整备份。

这里写图片描述

代表应用

  • Git
  • Bazaar
  • Darcs
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013243347/article/details/81288814
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 23:07:04
  • 阅读 ( 1115 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢