赞
踩
Git出生于2005年,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
分布式版本控制系统Subversionchus出生于2000年,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
特点:Git中每一位用户都保存一份副本,包括历史记录
Git支持本地提交,svn必须连接服务器
Git支持用户间使用Patch 补丁包协作
svn可以只签出一个文件,但Git一次签出就是整个仓库,如果项目很大,对个人pc要求会很高。Git不利于大文件的版本控制,比如上G的图纸。
Git每一次提交都以全部文件作为一个整体存为快照(id),而SVN则以改变过的文件为标记。
切换到分支版本时,svn需要将分支版本文件复制一遍,而Git只需要将仓库版本id复制一遍,所以Git的分支管理比svn六得多
svn的分支仅仅是目录的一个版本复制,git则可以多重分支并行
Git分支仅仅是将head复制一份,而SVN则将所有文件复制一份
这是在代码管理上git比svn强大的原因
SVN提交的版本以顺序编号,git以hash值编号
Git 中每个克隆(clone)的版本库都是平等的。可以从任何一个版本库的克隆来创建属于自己的版本库,同时你的版本库也可以作为源提供给他人,只要你愿意。
Svn版本号只能增加
git可以任意切换
1、 安全管理能力不足:SVN的安全控制和权限管理更好,git的分布式特性导致无法做到读控制,而对安全性要求较高的组织完全无法使用这种形式(硬用也可以,管理成本很高)
2、 学习成本高:git 有一定的学习成本,分布式的工作方式,需要转换思维方式,如签出某一文件夹,svn很容易而git较为复杂,而且pull的时候需要
3、 资源浪费:git适合文本存储(设计原意本是管理Linux代码),git因为都是镜像, 如果研发上传一个pcb图, 不相关的人员也要去下载, 很浪费流量和更新时间
4、 版本库只能做整体管理:每一次提交都包含所有文件(但如果仅作为查看使用,可以fetch部分)
个人观点:Git、SVN无所谓优劣,适用场景不同而已,适合的才是最好的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。