目录
SVN
Git
SVN与Git区别
扩展
集中式版本控制系统
分布式版本控制系统
集中式和分布式版本控制系统区别
SVN核心功能为update(SVN更新)和commit(SVN提交),Git核心功能为pull(拉取)和push(推送),具体一般的使用操作感觉差别不是很大,那这两者的具体区别是什么?
Subversion(SVN) 是一个开源的版本控制系统, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN是集中式的版本控制系统,必须依赖中央服务器才能实现提交,更新操作。但是一旦断网,所有机器都不能提交,更新代码。
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
每一台机器都能当做一个中央服务器,即使断网也能提交,更新,没有网络只是不能远程更新代码而已,但不影响正常工作.
1.Git适用于分布式开发,SVN适用于集中式开发,分布式有本地版本库(个人更新 提交)和远程版本库(多人协作更新代码用途),而集中式是指仅仅只有远程版本库(一旦断网,多人不能协作)。
2.SVN提交代码时只需一次提交(远程库),Git需要两次提交(本地库一次,远程库一次)。
3.就操作难易程度而言,SVN要比Git方便得多,但就代码管理而言,Git更优。
4.Git把内容按元数据方式存储,而SVN是按文件:因为git目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
5.Git没有一个全局版本号,SVN有,目前为止这是SVN相比Git缺少的最大的一个特征。
集中式版本控制系统版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作。
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
为了方便“交换”大家的修改,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但没有它大家也一样干活,只是交换修改不方便而已。
分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。