Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。与通用版本控制系统SVN相比,差异如下:
- SVN属于集中式系统;git属于分布式系统 。前者所有的版本信息都在服务器上,没有网络的情况下,无法进行commit,查看log,创建分支操作等操作;后者所有的版本信息存在本地,即使没有网络的情况下,也可以进行commit查看log,创建分支等操作。
- 版本库与工作区。SVN:二者是分开存放的,前者一般在服务器中,后者在开发者的本地。 Git:二者存放在一起的,在同一个目录下,工作区的根目录下的.git文件夹就是版本库。
- 版本号。SVN:使用全局版本号进行管理,每一次提交版本号就加1。Git:对本次提交内容经哈希算法处理得到一个40位的哈希值作为版本号。注:由于Git是分布式管理,无法做到全局版本号进行统一管理。
- 权限管理。SVN:通过路径(文件目录)实现权限管理。Git:权限管理不是很方便, 注:理论上Git是无法做到基于路径实现权限管理的,由于Git的版本号是根据提交内容计算的,如果这样做势必会造成克隆出的提交和原始的提交ID有差异。在实施中可以通过代码库分解,分别授权的方式来实现权限的分配
与SVN相比的优点如下:
- 分布式开发,支持离线工作
- 速度快(分支轻量级)
- 操作灵活(基本操作指令较多)