代码管理工具用Git还是SVN?详解Git和SVN的优缺点--燚智能硬件开发周教授
觉得有道理? 左侧有“公众号”、“微信号”、“头条号”,随便你想加哪个都行!还不过瘾,直接Call我们吧!
代码管理,是干什么的?
代码改了,改好了老问题,改出来新问题。哪里出问题了?
几个工程师一起开发,各自的版本都没问题,合到一起出问题了。谁的问题?
软件开发工程师,都需要代码管理工具,能够记录谁、什么时候、改了什么代码。一旦出现bug,就可以逐步排查。
(上学的时候老师肯定不教这些,而上班的第一课往往都是代码管理工具怎么使用)
用的比较多的代码管理工具
嵌入式产品和物联网产品开发中,使用比较多是Git和SVN。
Git:免费、开源、分布式版本控制系统,只要会用,大小项目都合适。
Git用了分布式版本库的作法,每个人有自己的一套代码,权限管理很严格,很多人一起开发一套软件也不会混乱。
有很多代码托管平台,也是基于Git来做的,如Github,Bitbucket,码云、Coding、华为软件开发云(DevCloud)等
SVN: 比较古老的一款,是开源的代码管理工具,是CVS的重写和改进版。多个开发人员协同开发,共用一个中心版本,记录大家的文件版本,是集中管理工具中应用最广泛的工具。
.
论Git比SVN好在哪里?
Git和SVN最大的差异在:Git用户有自己的本地的版本控制,SVN只有服务器上的版本控制。
Git里,每一个开发者在本地都有一个git仓库,在服务器上也有一个总的库;SVN则必须要把代码提交到中心控制器。
1、安全性:
git采用分布式系统,每个用户都相当于一个git的备份仓库,同时采用哈希校正保证数据的完整性, 仿制恶意篡改;SVN 的代码均存于中央服务器,服务器一旦出现故障,或者数据被修改,损失难以挽回。
2、开发审核:
git支持各个研发团队自己建立分支,在代码合并是可以从提交说明, 代码规范等多个角度对提交逐条审核;而SVN不具备这些功能。
3、版本发布控制:
git有良好的成员权限管理,我们可以设定只有管理者才能推送版本和分支;SVN的发布控制并不好用,更多的是靠人为的约束和制度的管理。
4、合并支持:
Git基于对内容的追溯,而非对文件名追溯,文件改名的时候,能够很好进行合并。而SVN遇到改名的时候就比较麻烦。
5、分支功能:
git的提交便于查询和追溯,提交内容的历史,时间,并且支持分支之间相互提交,操作灵活。SVN无法查询追溯分支之间的提交历史。
6、易用性:
SVN图形化界面做的好一些,适合开发者少的小系统使用。如单片机类的产品开发
Git主要是命令行操作,用起来复杂一些,适合开发者较多或容量较大的系统,如Linux和Android系统的开发。
总结
人少、代码少的,可以用SVN
人多,代码多的,可以用Git
嫌配置麻烦,又不担心代码安全性的,用GitHub类的云端代码托管。
(以上主要针对系统级开发,在互联网级的纯软件开发上,用svn和git的都有)
觉得有道理? 左侧有“公众号”、“微信号”、“头条号”,随便你想加哪个都行!还不过瘾,直接Call我们吧!
精彩内容回顾:
Git本地版本的使用方法介绍,软件工程师必看
Android Things软件开发,软件工程师要学新知识了!
头条号:https://www.toutiao.com/i6531158531972792835/