一、版本控制工具应该具备的功能
1、协同修改
多人并行不悖的修改服务器端的同一个文件。
2、数据备份
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
3、版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。
4、权限控制
1️⃣对团队中参与开发的人员进行权限控制
2️⃣对团队外开发者贡献的代码进行审核——Git 独有
5、历史记录
1️⃣查看修改人、修改时间、修改内容、日志信息
2️⃣将本地文件恢复到某一个历史状态
6、分支管理
允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。
二、版本控制工具分类
1、集中式版本控制工具:CVS、SVN、VSS……
2、分布式版本控制工具:Git、Mercurial、Bazaar、Darcs……
三、Git的优势
1、大部分操作在本地完成,不需要联网
2、完整性保证
3、尽可能添加数据而不是删除或修改数据
4、分支操作非常快捷流畅
5、与 Linux 命令全面兼容
另外:Git解决了单点故障的问题,因为在每台机器上都存储了所有的历史记录,Git和SVN的区别详见:SVN与Git的优缺点对比