前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >版本控制工具 : Git VS Svn

版本控制工具 : Git VS Svn

作者头像
测试小牛
发布2022-04-25 20:13:29
5830
发布2022-04-25 20:13:29
举报
文章被收录于专栏:测试小牛进阶测试小牛进阶

你好,我是小牛。

关于版本控制工具,基本是每一个IT人,不管是开发还是测试,运维都应该掌握的专业技能。

作为软件测试工程师,如果你不懂版本控制,那么很多开发之间的沟通交流像代码分支release,主分支master,代码冲突,代码仓库等等概念可能都处于懵逼状态。

先来说说公司为什么引入版本控制工具,它的实际用途是什么?这里主要讲三点,算是应用最多的。

一.版本管理

比如你的公司产品上线了一个新功能,开发写了二千行代码实现,但是上线后用户体验很差,老板要求去掉这个功能。

但是,这个时候总不可能一行一行人工删除吧,那谁还记得改了哪里。

这个时候就需要引入版本控制工具,实现代码回滚,可以自由回退到你之前修改提交代码的任何一个版本。

二.协同开发

除了那种只有个位数作坊式开发的创业公司,一个人负责一个完整项目外,但凡有点规模的企业,一个项目都不可能只有一个开发人员参与。

大家都是使用同一个工程项目,分别负责不同的功能模块。

可能A开发了两天,B需要在他的基础上继续开发。两个人还可以复制代码,那么有20个人呢?

所以就需要引入版本控制工具,来确保每次开发代码之前都可以拉到最新的代码库,所有人的代码都应该跟最新的代码库保持一致。

三.资源共享

不管是开发跟测试,产品,日常都会输出大量的文档,像测试用例,需求文档,接口文档,性能测试报告等等资源文件。

使用通讯软件来传输效率太低,这个时候就可以引入版本控制工具来实现对资源文件的统一管理。

企业中目前使用最多的版本控制工具主要有两种,一种是Git,另一种就是Svn。下面对比分析一下这两个工具。

Git和Svn最核心的区别就是Git为分布式管理系统,Svn为集中式管理系统。

集中式管理系统

集中式版本控制系统,代码资源库都集中放在一个服务器中。

当工作的时候就需要先从服务器拉取最新版本,写完代码或者修改完文件,再推送到中央服务器中。

分布式管理系统

而分布式管理系统不需要一个中央服务器,每个电脑都是一个完整的版本库。

A在自己本地修改了代码,B也在本地修改了代码。他们俩只需要把各自的修改推送给对方,就可以看到互相的修改。

两者的优劣就在于,分布式比集中式更加安全。

因为分布式每台电脑都有版本库,一个人坏掉了可以从另一个人那里复制。而集中式中央服务器出现问题,其他所有人都无法使用了。

除此之外,Git支持离线工作,就是在本地也可以操作,而Svn的使用必须要联网。如果无法连接到中央服务器,就无法提交代码,更别说还原对比等操作。

在分支管理上面,Git更加强大。svn如果要删除分支,就需要将远程分支删除,那么大家都得同步。而Git分支可以在本地操作,不同步到远程。

在访问控制,权限控制方面,svn做的更好。

Git没有严格的权限控制,一般是通过系统设置文件读写权限来做权限控制,工作目录只能是整个目录。而Svn可以单独设置某个目录的权限。

在学习成本方面,Git是命令行使用,Svn是小乌龟图形化界面,相对来说Svn学习成本更低,对新人更加友好。

关于使用哪个版本控制工具,不同公司都不一样,一般来说,如果对访问控制,权限分配和代码安全性要求高的,可以使用Svn。

如果是分布式,多人开发,版本迭代比较快的项目,可以使用Git更佳。

作为测试,最好两个工具都学习一下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试小牛进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档