git和svn的区别

3,673 阅读2分钟
原文链接: mp.weixin.qq.com

git 和svn是目前用得比较多的版本控制系统。只要是做项目开发就会用到这类系统。

Git 与 SVN 区别

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

Git 与 SVN 区别点:

1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

2.Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网

3、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

4、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

5、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

6、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

最后 说一下git 分支的使用,如果习惯了git分支会觉得git很好用。

master 用来发布版本.master 分支与 线上永远保持一致。

dev 用于准备上线的分支。与 master 版本差异不大于 1-3 个版本(因为待上线需要部署时间,与 master 合并不会立刻完成)。稳定后合并到master

dev-test 用于各种功能测试之用。 基于 dev 分支 而来。因此可以随时回滚等操作。

dev-功能名称 每次有新功能,先基于当前 dev 创建准备开发的功能。各人员接到需求后,拉取此分支进行开发。若多人开发一个功能。那么再在此分支创建更加细化的分支。如:dev-功能名称-开发人员名称

所以可以有这样的流程 拉取dev上的代码准备开发创建 dev-功能分支,开发完后先合并到 dev-test。 确认测试没问题再 将 dev-功能名称 分支与 dev 合并。 最后等上线就将 dev 再合并到 master。