【git】P1 git 分布式管理系统简介
目录
- git 是什么
- 版本控制系统
- 集中式版本控制系统
- 分布式版本控制系统
git 是什么
git 是一个免费开源的 分布式版本控制系统,它使用一个特殊的叫做 “仓库(repository)” 的数据库来记录文件的变化。仓库中的每个文件都有一个完整的版本历史记录(如下图),可以看到谁在什么时间修改了哪些文件的哪些内容,在需要的时候也可以将文件恢复至之前的版本。
图片来源:GeekHour Git 课程
如果没有版本系统,那么我们只能通过最原始的方式管理文件,比如将文件按时间备份出多个副本,或将整个项目的每个版本都保存在不同的文件夹中。
图片来源:GeekHour Git 课程
而当很多项目成员在同时修改同一个项目的时候,就需要手工来合并两个人的修改内容。这样不但低效,管理起来也非常麻烦~
版本控制系统
版本控制系统 就是为了解决这些问题而诞生的,有了版本控制系统,我们就可以跟踪每个文件的变化,让项目成员之间的协作更加高效。
目前世界上最流行的版本控制系统有两种,一种是集中式版本控制系统,比如SVN、CVS等等,另一种是分布式版本控制系统,比如Git、Mercurial等。
集中式版本控制系统
集中式版本控制系统的工作流程如下图所示,所有的文件都保存在中央服务器上,每个人的电脑上只保存了一个副本,当你需要修改文件的时候,首先需要从中央服务器上下载最新的版本,然后添加你想要的修改内容,修改完成之后再上传会中央服务器。
集中式版本控制系统的优点是使用起来非常简单,只需要从中央服务器上下载最新的版本,修改完成之后再上传到中央服务器上就可以了。但是其缺点也非常明显,就是中央服务器的单点故障问题 —— 如果中央服务器出现故障或者网络连接出现问题,那么所有人都无法工作。只能等待中央服务器或者网络恢复正常。
分布式版本控制系统
而分布式版本控制系统就没有这个问题(如下图所示),每个人电脑上都有一个完整的版本库,我们可以在直接在本地进行修改,不需要考虑网络等问题。这样即使中央服务器出现故障,我们也可以继续工作。当需要将我们的修改内容分享给其他人的时候,只需要将仓库互相同步一下就可以了。
因为免费开源、速度快、功能强大,支持离线工作以及强大的分支管理等特性,Git 已经成为了目前世界上最先进的分布式版本控制系统。世界上超过 90% 的开源项目都在使用 Git 进行版本控制。
Github、GitLab、Gitee 等网站上托管的开源项目,也都是使用 Git 来进行版本管理的。对于开发者来说,掌握 Git 是必不可少的技能,而这就是本系列博文记录和分享的核心。