做项目时SVN与Git的选择
Posted 编程文学艺术家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做项目时SVN与Git的选择相关的知识,希望对你有一定的参考价值。
最近MVC、三层架构才学完,JavaWeb也只是用tomcat服务器实现了一些一般程序员的常规操作,正准备搓搓手开始自己做些东西了,却面临着分组写代码的问题,而了解到的Git和SVN两个优秀的版本控制系统在使用上也却各有千秋。
归根结底就是分布式和集中式的区别,下面通过小组案例说明各自的使用环境。
SVN就是小组成员将项目代码实时上传到一个托管网站,既然是实时那就一定是需要稳定的网络环境,没有网就无法提交,一般小组在commit之前先update查看代码和组员有无冲突,这也导致了所有人都被动的要跟着服务器后面走,不论谁修改了代码,其他人都要更新后才能继续。
而且当所有人的分支都提交后,要把分支克隆下来是困难的,因为每个人每提交一次都是一个版本,不敢想象克隆那么多份将耗费多少时间和空间,但他的优点也是显而易见的,每个参与者都能实时动态的修改代码保证其正确性,当项目规模小和大家刚开始学习团队项目时,使用SVN是很直观的。
抽象来讲,Git就是不管这个小组有没有网络环境,都可以用eclipse在EGit的项目中add to index到索引库,再通过commit提交到本地分支(第一次master后面branch),等有网了再push到远程仓库(一般用封面上这只小黑喵github作为远程仓库),想用别人的代码或别的人提交分支了直接pull或者import以及clone到本地仓库都是可以得到的,而且完整性较高,若有版本问题可以通过调取本地分支的历史版本进行修改,和新的分支一并提交到github中,同时也模块的独立性可以避免很多冲突和不必要的更新,大家共享资源,分工明确时各自做各自的版本最后提交是很高效的,但前提是你的这个项目的分工足够专业和明确,大家只需要各司其职就好了。
两者的主要区别是:Git 只关心文件数据的整体是否发生变化,而SVN这类版本控制系统则只关心文件内容的具体差异。最后引用一个大佬的名言:
任何事情,归根结底都是人的问题,工具只是工具。
----Ghoststears
以上是关于做项目时SVN与Git的选择的主要内容,如果未能解决你的问题,请参考以下文章