1.版本控制 1.版本控制

为什么想要版本控制

操作麻烦每次都需要复制→粘贴→重命名
命名不规范无法通过文件名知道具体做了哪些修改
容易丢失如果硬盘故障或不小心删除,文件很容易丢失
协作困难需要手动合并每个人对项目文件的修改,合并时极易出错

版本控制软件

版本控制软件是一个用来记录文件变化,以便将来查阅特定版本修订情况的系统,因此有时也叫做“版本控制系统”。

版本控制软件的分类
1.本地化

优点: - 使用软件来记录文件的不同版本,提高了工作效率,降低了手动维护版本的出错率缺点:

  • 单机运行,不支持多人协作开发
  • 版本数据库故障后,所有历史更新记录会丢失
2.集中化(svn)

优点:基于服务器、客户端的运行模式

  • 服务器保存文件的所有更新记录
  • 客户端只保留最新的文件版本优点:联网运行,支持多人协作开发

缺点:

  • 不支持离线提交版本更新
  • 中心服务器崩溃后,所有人无法正常工作
  • 版本数据库故障后,所有历史更新记录会丢失

3.分布式(git)
优点:基于服务器、客户端的运行模式
·服务器保存文件的所有更新版本
·客户端是服务器的完整备份,并不是只保留文件的最新版本

  • 联网运行,支持多人协作开发
  • 客户端断网后支持离线本地提交版本更新
  • 服务器故障或损坏后,可使用任何一个客户端的备份进行恢复

svn和git的区别

传统的版本控制系统(例如SVN)是基于差异的版本控制,它们存储的是一组基本文件和每个文件随时间逐步累积的差异。即仅存储每个版本的更改部分,在每次切换版本的时候,都需要在基本文件的基础上,应用每个差异,从而生成目标版本对应的文件。

  • 好处:节省磁盘空间
  • 缺点:耗时、效率低

Git 快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。

  • 缺点:占用磁盘空间较大
  • 优点:版本切换时非常快,因为每个版本都是完整的文件快照,切换版本时直接恢复目标版本的快照即可。