文件的版本
- 操作麻烦 每次都需要复制 粘贴 重命名
- 命名不规范 无法通过文件名知道具体做了哪些修改
- 容易丢失 硬盘故障 不小心删除 很容易丢失
- 协作困难 手动合并每个人对项目文件的修改
版本控制软件
- 用来记录文件变化,以便将来查阅特定版本修订情况的系统—版本控制系统
- 通俗理解 将手动管理文件版本方式------软件管理文件的版本
版本控制软件好处
- 操作简便
- 易于对比
- 易于回溯 将选定文件回溯到之前的版本
- 不易丢失
- 协作方便 分支功能
版本控制系统的分类
-
本地版本控制系统
单机运行 不支持多人协作开始、
版本数据库故障后,所有历史更新记录会丢失 -
集中化版本控制系统(SVN)
- 特点:基于服务器,客户端的运行模式
服务器保存文件的所有更新版本
客户端只保留最新的文件版本 - 优点: 联网运行 支持多人
- 缺点: 不支持离线提交版本更新 服务器崩溃,所有人都无法正常工作
- 特点:基于服务器,客户端的运行模式
-
分布式版本控制系统 ---- Git
- 基于服务器,客户端的运行模式
联网运行,支持多人协作
断网后,支持离线提交本地版本更新
服务器故障,可使用客户端的备份进行恢复‘
客户端是服务器的完整备份,并不是只保留文件的最新版本
- 基于服务器,客户端的运行模式
什么是Git
是一个开源的分布式版本控制系统 最先进 最流行 高效的处理从小到大的项目版本管理
特点
- 直接记录快照,而非差异比较
- 所有的操作都是本地执行
- Git中绝大多数操作 只需要访问本地文件和资源
断网后依旧可以在本地对项目进行版本管理
联网后,把本地修改的记录同步到云端服务器就可以
与SVN差异比较
SVN好处:节省磁盘空间
SVN缺点:耗时 效率低,在每次切换版本的时候,都需要在基文件的基础上,应用每个差异,从而生成目标版本对应的文件
Git记录快照
在原有文件版本的基础上重新生成一份新的文件,类似备份,为了效率,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件
缺点:占用磁盘空间大
优点:版本切换非常快,每个版本都是完整的文件快照,切换版本直接恢复 目标版本的快照就可以