疑问:
git是做什么的?
git是如何发展的?
一、git是做什么的?
git是版本控制器。什么是版本控制器?就是记录每一次修改的内容的一个工具。举例来说,
你的操作 git记录
今天你新建了一个txt文本。 x年x月x日x人 新建了一个txt文件。
一天后你在txt文本上写了“aa”。 x年x月x日x人 在txt上添加了文字“aa”。
两天后你在txt上写了“bb”。 x年x月x日x人 在txt上添加了文字“bb”。
不小心把本地文件txt删除了,还可以恢复文件。
现在是不是对git有了一个初步的了解?
二、git是如何发展来的?
人们有记录版本的需要,但是往往不会一下子就想到这种完善的方式。git的发展也是经历了很多过程的。
1、本地版本控制系统
有没有这样的经历?在做一个时间比较长的项目的时候,在更改某个功能或文件之前自己先拷贝一份作为备份,然后在进行修改。为了区别,还在每个拷贝上加上时间和备注。但是,想一想,每次改变只是几个文件,却要复制整个项目,如果项目很大,好几个G,久而久之,不是太浪费硬盘容量了吗?要是能每次只记录修改了的文件,不是大大的节省了容量?这样,就诞生了“本地版本控制系统”。他就是每次记录修改了哪些文件,并记录到本地。但是,一旦硬盘损坏,那么文件都会不复存在了。
2、集中化的版本控制系统
加入有三个人协同开发一个项目。每个人记录自己改变了的文件到本地,下班前,三个人把各自工作合起来的时候就比较困难了。只能把工作都汇集到一台电脑上,然后人工合并。容易出错不说,合并工作也是相当耗时费力。而集中化的版本控制系统就是为了解决协同开发的问题诞生的。
集中化的版本控制系统都有一个专门记录更改的服务器。每一个项目的开发者连接到该服务器,更新最新的项目,提交更改。
这么做得好处是:
- 每个人都可以看到其他人都在做什么。
- 管理员可以掌握每个人的开发权限。
- 协同开发方便。
缺点:
- 一旦服务器挂掉或者硬盘坏掉,那么项目就没有办法再次恢复了。
3、分布式版本控制系统
为了解决集中式管理系统的缺点,分布式版本管理系统应运而生。分布式管理系统也是有一个服务器作为版本控制的主要服务器。但是,PC端的每一次拉取或者更新操作就会把最新的项目备份到PC端。如果有三个人协同开发,那么就有四份项目的备份,一份在服务器,三份在PC端。这样即使服务器坏掉,我们还是可以恢复文件的。
Git就是一种分布式的版本控制系统。