使用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:,如需转载请自行联系原作者



相关文章
|
5月前
|
程序员 Linux 开发工具
Git基本概念、工作流程及与SVN的对比
Git基本概念、工作流程及与SVN的对比
48 0
|
5月前
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
47 0
|
3天前
|
开发工具 git
将本地项目上传到svn服务端和git
将本地项目上传到svn服务端和git
16 0
|
12天前
|
数据挖掘 开发工具 Android开发
R语言对git安卓包分类统计、聚类、复杂网络可视化分析
R语言对git安卓包分类统计、聚类、复杂网络可视化分析
|
5月前
|
存储 安全 开发工具
快速入门安装及使用&git与svn的区别&常用命令
快速入门安装及使用&git与svn的区别&常用命令
109 0
|
7月前
|
Unix Linux 开发工具
【Git使用】关于Windows系统下的git提示“warning: LF will be replaced by CRLF”的原因分析和解决方案
【Git使用】关于Windows系统下的git提示“warning: LF will be replaced by CRLF”的原因分析和解决方案
146 0
|
9月前
|
存储 安全 开发工具
版本管理工具git 与 svn 的区别具体有哪些?
版本管理工具git 与 svn 的区别具体有哪些?
86 0
|
9月前
|
Shell 开发工具 git
Git和SVN的区别并在Windows电脑安装Git
Git是目前较先进的分布式版本控制系统,通俗点讲就是一个备份系统,你每次更新并提交代码之后,它会给你提交的代码设置一个版本标记并将每个版本标记的代码都备份在系统上。如果你想要寻找你修改之前的代码,直接进行回滚到你想要的那个版本就可以了。
131 0
|
10月前
|
Java 开发工具 Maven
<3>搭建springcloudConfig中的configServer,用来从git/svn读取配置文件
这里使用码云环境,在码云创建一个仓库,名为config_server。
|
11月前
|
开发工具 数据库 git
Git 和 SVN 有什么区别?
SVN(Subversion) 属于集中化的版本控制系统,只有一个单一的服务器用来集中管理和保存所有文件的修订版本。
62 0
Git 和 SVN 有什么区别?