我使用过的版本控制工具有两种:早期的时候使用的是SVN,现在主要使用git,我就我个人的观点,简单的说下两者的区别:
1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;
2. Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;
3. Git鼓励分Branch(分支),而SVN,说实话,我用Branch的次数还挺少的,SVN自带的Branch merge我还真没用过,有merge时用的是Beyond Compare工具合并后再Commit的;
4. SVN在Commit前,我们都建议是先Update一下,跟本地的代码编译没问题,并确保开发的功能正常后再提交
SVN 的主要功能
SVN属于集中化的版本控制系统,有个不太精确的比喻:SVN = 版本控制+ 备份服务器
SVN使用起来有点像是档案仓库的感觉,支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。
功能有许多我就不一一列了,SVN大都采用图形界面操作,直观,上手快。
Git的主要功能
Git是一个分布式版本控制系统,操作命令包括:clone,pull,push,branch ,merge ,rebas,Git擅长的是程序代码的版本化管理。
SVN 的优缺点
SVN对中文支持好,操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便。
Git的优缺点
对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。不支持中文,图形界面支持差,使用难度大。不易推广。
SVN 和 Git 哪个更适用于项目管理?
SVN更适用于项目管理, Git仅适用于代码管理。
一个研发队伍的成员正常包括:需求分析、设计、美工、程序员、测试、实施、运维,每个成员在工作中都有产出物, 包括了文档、设计代码、程序代码,这些都需要按项目集中进行管理的。SVN能清楚的按目录进行分类管理, 使项目组的管理处于有序高效的状态。
现在越来越多人使用git做为版本控制工具,我以前的公司也是使用git.
git具体使用流程请参考
http://www.runoob.com/git/git-basic-operations.html
svn具体使用流程请参考
http://www.runoob.com/svn/tortoisesvn-intro.html