使用Git替代SVN的可行性分析

简介:
试用了一把Git,感觉Git的优势在于:
版本库本地化 ——每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。 
因为是私有的本地版本库,因此实现“真正的”脱机工作 成为可能。 
只有在必要的时候,才会和公共版本库合并,每个开发者会在本地保存一个公共版本库的镜像,在提交时可与公共版本库同步以更新这个镜像,可以基于这个镜像和自己的私有版本库创建公共版本库的更新补丁 ,这个补丁可以以邮件、HTTP等多种传送方式去升级公共版本库。 
Git的“比较”功能很强大,归并文件速度比SVN要快 。 
Git的无污染性 ,git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。 
目前,Git的不足之处在于: 
Git缺乏细致的权限管理功能,这个与Git的产生背景及文化有关,Git秉承Linux自由开放的精神,本身没有权限管理的概念,而且估计很难在短时间内改变,只能期待第三方工具能弥补这个缺陷。例如在Linux下,Git版本库的权限管理一般是通过Linux系统共本身的用户权限管理来做的。SVN则有很多第三方管理工具供选择。 
Git虽然能归并文件,但不提供图形化的归并(merge)工具。例如,如果需要进行文件的人工比较,在windows下一般需要借助 TortoiseMerge, Araxis Merge 之类的工具完成……而我们知道,人工比较是必不可少的。 
Git的Eclipse插件功能有限,很多操作还需要靠命令行,据说还有些bug。 
结论
Git是真正的分布式版本管理工具 ,每个人都有自己的代码库,跟SVN不同。这个区别带来的最大好处就是跟踪本地的修改过程非常方便,而SVN里不同代码库之间不能切换。但是SVN客户端的用户界面比Git友好得多,特别是SVN建立在大家普遍比较熟悉的CVS模型之上。 
Git非常适合像 Linux Kernel 这样的开发组织形式高度分散,严重依赖 Email 来进行交流的项目。 
Git同时也适合那些通过Email沟通的小团队开发,Git为之提供了不少贴心的小功能,这里就不多说了。 
公司开发是相对集中的工作模式,对时间和协作效率的要求比较高 ,还是采用 CVS, SVN 这样的基于中央版本控制库的工具比较好,毕竟它们比Git在这方面更成熟,更友好。 
一些Git资源
TortoiseGIT - TortoiseSVN Git Version 
It is porting TortoiseSVN to TortoiseGit The latest release 0.5.1.0 This release can complete regular task, such commit, show log, diff two version, create branch and tag, Create patch and so on. Welcome to contribute this project.

http://code.google.com/p/tortoisegit

——“小乌龟”SVN大家应该不陌生吧,这个是Git版的小乌龟,for windows yet.
Git Eclipse plug-in 
http://www.jgit.org

——上面提到的 Git Eclipse 插件,装上玩玩就知道了……
 

     本文转自胡奇 51CTO博客,原文链接http://blog.51cto.com/huqicto/280887:,如需转载请自行联系原作者



相关文章
|
程序员 Linux 开发工具
Git基本概念、工作流程及与SVN的对比
Git基本概念、工作流程及与SVN的对比
360 0
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
278 0
|
敏捷开发 存储 开发工具
版本控制系统的选择:Git与SVN的比较
【8月更文挑战第14天】Git和SVN都是优秀的版本控制系统,它们各自具有独特的优势和适用场景。在选择版本控制系统时,需要根据具体的项目需求、团队特点和开发模式来综合考量。对于需要分布式团队协作、高效处理大型项目或采用敏捷开发模式的团队来说,Git是一个更好的选择。而对于传统团队、集中式开发或简单项目来说,SVN可能更加合适。无论选择哪种版本控制系统,都应该充分利用其提供的工具和功能来提高代码质量和开发效率。
|
存储 安全 开发工具
Git 对比 SVN 的区别和优势
Git和SVN各有优劣,选择哪种工具取决于项目的具体需求和团队的协作模式。Git适合大型、复杂、需要频繁分支和合并操作的项目,而SVN则更适合小型项目和集中式团队协作。通过本文的对比分析,开发者可以更好地理解两者
1588 13
|
存储 开发工具 git
Git和SVN有什么区别?
综上所述,选择Git还是SVN取决于项目的具体需求、团队规模以及工作习惯。Git因其高级特性和灵活性,成为了现代软件开发中更受欢迎的选择,而SVN在某些特定场景下仍保有一席之地。开发者应当根据实际情况,权衡两者之间的优劣,作出最适合项目的选择。
686 4
|
安全 应用服务中间件 开发工具
Web安全-SVN信息泄露漏洞分析
Web安全-SVN信息泄露漏洞分析
1496 2
|
存储 开发工具 数据安全/隐私保护
Git 与 SVN:版本控制领域的双星对比
【8月更文挑战第27天】
841 6
|
Linux 开发工具 git
企业级Git管理工作流分析--GIT实战详解
企业级Git管理工作流分析--GIT实战详解
423 0
|
Kubernetes jenkins 持续交付
Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)
Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)
769 0
|
数据挖掘 开发工具 Android开发
R语言对git安卓包分类统计、聚类、复杂网络可视化分析
R语言对git安卓包分类统计、聚类、复杂网络可视化分析