推荐使用Git作为管理版本工具

近一个多月在使用git进行源代码管理的过程中,越来越发觉git功能的强大。

之前有使用过SVN,现在还在使用,而在工作中所使用的是VSS,下面针对自己使用的感受说一下对几个版本管理工具的比较,也许看过之后你会乐于使用git或者在其它现有的工具中结合git的优势。

 

一,代码污染少

用VSS及SVN进行版本管理均会在每个子目录下产生.scc,.svn等文件或子目录,不利于保持代码库的整洁,而GIT只在工程的根目录中包含.git目录,所有版本管理的信息均在该目录中存放。也正是因为这一点,使得GIT与其它版本管理工具一起使用时,可以发挥其优势(例如团队如果使用SVN,你也可以自行在本地使用GIT管理)

二,分支及管理更方便

使用GIT的过程中,基本养成了增加新功能就开一个新分支的习惯,开发完成再合并,作为个人开发可能这个优势不大明显,但是作为组队开发这个应该是比较明显的。SVN及GIT这类工具相对于VSS来说要好的是,不具有锁的概念,这样的话,就不会存在不能同时对一个文件进行修改的限制。其实这个我想应该可以避免,如果模块划分得好,相互之间的影响较少,对某些文件的相互依赖也会比较少,可以一定程度避免。 而SVN及GIT等工具不存在这个概念,所需要的只是合并,如果模块划分得好,基本上不会存在merge conflict,也就不需要人为地干预。

三,DIFF工具确实强大

在使用的过程中,发现GIT的DIFF确实强大,可以比较整个版本与之前版本的差别,也可以具体到每个特定版本之间对应目录或对应文件的差别,粒度控制的很到位。

四,GIT源代码管理的优势

1. GIT管理的粒度更加自由可控

   GIT与SVN等工具合作的一个方便的地方是可以把粒度控制的很小,甚至是一个小小的改进都可以作记录,而不必担心对团队的代码影响过大。等到你觉得正在开发的Feature已经足够成熟了,再考虑commit到团队的代码中。

2. 独特的Stage-Commit机制

   Git独特的Stage-Commit的提交机制,虽然一开始你会觉得麻烦,但是这其实增加了更多操作的自由性,你可以commit -a一次性地提交更新,而不管其它,你也可以一个个的add,然后再commit,这一点在合并别人的代码的时候可以看出它的优势,你可以看到哪些文件改变了,然后再用diff查看相应的修改的文件,了解其它成员的改动。虽然这可以通过团队的沟通来解决这个问题,但是,其它成员可以有事或者比较忙,你可以通过浏览代码的改动来了解。

3. 方便的branch-merge能力

   这一点是GIT相对于其它版本管理工具的最大优势。

五,暂时觉得应该注意的地方

1. 对中文的显示不算太友好

    我在WINDOWS下用CYGWIN使用GIT,代码中有部分注释如果是中文的话不能显示。  网上查资料有说可以配置encoding选项,但是现在这一部分对我暂时影响不大,所以没有去继续找了。

2.  我觉得还有一点是在使用过程中需要注意的,我之前使用的时候一股脑地把全部文件加入到版本库,后来发现与别人的代码合并的时候,经常会有VSS等的.vssver2等二进制文件说要合并,这有可能会对团队VSS服务器造成污染,这一点我应该在构建GIT的本地仓库的时候就留意的,只对源代码进行版本跟踪,对文档跟踪的话,也只跟踪文本文件,如果非要用GIT来跟踪DOC文件的话,我想这对GIT的要求也太高了,毕竟用瑞士军刀来砍牛肉有点不实际 ;)

 

以上是目前我在使用的过程中的一些个人感受,以后有些更新的体会再看看吧。

 

你可能感兴趣的:(推荐使用Git作为管理版本工具)