存储方式
SVN是按照文件的方式进行一个存储,而Git是按照元数据的方式将文件的一个版本存入了一个类似与K/V数据库。Git的内部有一个类似于K/V的数据库,我把他理解为是一个Map<K,V>,我们将内容存储到Git的数据库内后,Git会返回一个Key给我们,这个Key是唯一的(把一模一样的内容上传进去,这个key也是唯一的)
使用方式
SVN:只要commit其他开发人员就可以直接checkout下来
Git:如果要从本地将修改后的文件提交进入远程仓库再从远程仓库将其他开发者修改后的文件checkout下来需要以下几个步骤
- 首先把修改后的文件通过add添加到我们的暂存区
- 然后通过commit命令将暂存区的文件提交到本地仓库
- 最后通过push命令将本地仓库的文件存入到远程仓库
- 要通过clone命令将远程仓库的文件拉到本地仓库
- 最后通过checkout将本地仓库的内容取出来
管理模式
SVN是远程集中式的管理系统。如果说SVN的远程仓库挂掉了,那我的本地项目再也不能做提交,也不能做分支的切换,也不能够干和版本管理相关的任何事情,这就是集中式管理的缺陷了。
Git是一个分布式的管理系统。在项目内有一个Git仓库,也就是说在本地一个项目包含一个完整Git仓库,Git仓库是在项目内的,远程仓库能干的事情本地的Git仓库也能干。本地仓库和远程仓库通过四种主要传输协议相关联(本地协议、Http协议、SSH协议、Git协议)。Git还支持远程仓库里面的多个远程仓库。