项目需要,代码管理工具切换到git,跟cvs切换到svn不一样,我本人开始对git是很抵制的,觉得他跟svn差不多,没有必要代替。严重依赖分支进行开发的项目,使用git管理很方便。因为git就是为分支管理而创建。另外github社区的崛起,也促进了git的迅速普及。
小乌龟也有git协议的管理工具,叫tortoiseGit,这个好像更像面向svn的用户而编写的,很多界面跟tortoisesvn一样。无论什么工具,大家最好把git的原理看一下,否则之后工作中的很多操作你会觉得很奇怪。
最大的优点
不用再为切换分支而烦恼,在严重依赖分支来开发功能的项目中,使用git真是方便。
使用git开发的时候,eclipse可以安装官方的egit插件,在eclipse里面,只需switch即可切换分支。省去切换工作空间,或者导入导出代码等工作。
但是,在我使用的过程中,因为我们项目使用的是maven管理,且喜欢多个项目(dao一个项目,service接口一个项目,serviceImp一个项目)组成一个大项目的开发方式。每次切换分支后,经常有时出现编译不通过的问题。我觉得这个可能是maven跟git联合起来引起的bug。不过,我们切换分支可能只是为了检查代码修改情况,可以不用理会编译问题。
最大的缺点
版本比较不再那么清晰。
如果使用svn,在分支上开发,然后合并到主干,那么在主干上查找某个文件的修改历史,能看到合并后的版本及合并前版本是挨着的,分支上对某个文件的修改历史,在主干上是找不到的。但git却不是这样,合并到主干后,你看到的跟分支上的更改历史一样,想看合并分支之前的版本太困难。而且那个修改踪迹图,很抽象。
另外,git有一套标准的分支管理流程,叫git flow。这个大家可以自己研究一下。团队开发,我觉得规范很重要,我想,这也是大家为什么采用git的一个原因吧。
附上git的主要命令
git fetch:从服务器获取更改,但不合并到当前分支。
git pull:从服务器获取更改,并且合并到当前主干。
git commit:提交更改至本地。
git push:将本地仓库更改提交到服务器(前提是你本机的代码比服务器端新,如果没有服务器的新,服务器会拒绝)
请支持原创:
http://donlianli.iteye.com/blog/1993302
对这类话题感兴趣?欢迎发送邮件至
donlianli@126.com
关于我:邯郸人,专注于软件技术。
更多我之前的文章,可以访问
我的空间