【每日面试】git和svn的区别?git相对于svn的好处?

大部分面试都会问到的内容,就是在代码管理上,是使用git还是svn?这两个东西倒是都用过,但都没有去梳理过,今天以这个问题梳理一下。



1.
git和svn都是代码管理工具,那先搞明白一件事,代码管理是啥?为啥要管?

1)什么是代码?

程序员写出的不都是代码吗?不,也有可能是垃圾~哈哈,开个玩笑~代码大家天天写,它就像你生产出来的货物一样,久而久之,货物就会越来越多,总不能这一堆,那一放的,不然想找的时候可就头疼了。就像图书馆会把书籍分门别类的管理起来一样,有条理的管理代码,可以减少工作量


2)代码管理?

说的直白点是代码管理,专业点说叫版本控制。那为什么要版本控制呢?比如咱们现在手机里的APP,隔三差五就要更新个版本,JDK到现在都更新到十几了,每次更新的时候,APP一提示,咱们一同意,就开始下载新的安装包了,你就不好奇,每次更新完之后,功能变多了、少了、不同了,背后到底做了什么呢?

比如一个登录功能:

V1.0版本,是用户名+密码登录

V2.0版本,是邮箱+密码登录

V3.0版本,是手机号+验证码登录

V4.0版本,是微信这样的第三方登录

V5.0版本,是扫脸登录

每次版本一变化,登录功能就变了,如果代码是你写的,你看啊,你要把新的功能替换掉老的功能,你可以重新写一个接口、一个实现类或者就简单一个方法,新的能用,老的也不删除。这样的事情干的多了,总会有记不住的时候,不能每次有什么问题,都去找写代码的人,或者看源码的注释吧?每次代码更新都更新了什么内容?代码有什么变化?跟以前的代码有没有冲突?更新完之后项目运行出错了咋办?想回到原来的功能怎么办?这些问题,以前只能由人来解决,费时费力不讨好的工作谁都不愿意干。那怎么不让软件来管理这些代码呢?让软件来管理版本呢?

一个软件,替代人工,完成代码整合、更新记录、冲突校验等重复的体力劳动,而且错误率低,这次是编程师该干的事:能用程序解决的事,绝不动手。




2.

最开始用什么软件去做版本管理,我没找到资料,我用过的,也是现在公司大多使用的,就是svn和git,那就来简单说说:

1)关于svn

菜鸟svn教程

https://www.runoob.com/svn/svn-tutorial.html

2)关于git

菜鸟git教程

https://www.runoob.com/git/git-tutorial.html

3)网上看的不错的文章,博主的签名是我以前最喜欢用的!

git和svn的区别

https://www.cnblogs.com/Sungeek/p/9152223.html




3.
总结一下,以前记得有个例子是这样说的:

svn是中央集权,皇帝死了,天下大乱,非正统不可登基

git是藩王割据,皇帝死了,天下安然无恙,再来个王爷称帝就行

svn适合各干各的,彼此之间的功能尽量不要影响

git适合协作,几个人开发一个功能也没问题


还有就是我喜欢用git,以前用svn,一不留神忘了更新,修改错误真的心烦。。。



大家有什么关于面试想了解的内容,可以在文末留言~


互联网面试解析 文章被收录于专栏

面试分析,在机会来临前做好准备。

全部评论

相关推荐

02-12 20:22
重庆大学 Java
字节暑期刚入职四天,因为是年前,所以很多正职都放假走了,也就没有给我分配mt,然后有一个老哥在我来的时候给我发了一个landing手册,然后还有关于部门业务的白皮书,还有一些业务代码。然后本人是java面的,进来第一次接触go语言 前面几天熟悉了一下go的语法和go的框架,可以读但是还不太会写,然后业务白皮书也看的很头疼,包括landing手册里要了解的很多东西说实话我看文档真的快看死了,一个嵌套一个,问题是我还完全不知道咋用这个我了解的东西,还有就是那个项目代码,那个老哥喊我去写写单测,熟悉一下go的语法,但也进行的很困难(这是我第一段实习,之前都是springboot那一套,真不太熟悉这个)想问问大家的建议,就是我从现在开始到在开年回来之前应该做些什么,我目前就一个想法 就是复现一个landing手册上的go框架小项目 就是相当于帮自己锻炼锻炼怎么写go 或者各位大佬有没有更好的锻炼go语法的建议还有就是大家都在说vibe coding,那我应该怎么锻炼自己使用ai的能力,感觉我除了给一些需求然后它给我生成代码,好像就没别的用法了,那些什么工作流、拆解、skill啥的都不知道从哪一个地方开始,包括我现在正在实习,不知道精力该怎么分配,去网上想找找关于agent开发的一些学习流程,说实话,众说纷纭,有的是从python开始打基础然后系统学那些rag prompt langchain mcp等等,有的是说直接找一个github上的ai项目然后反复问ai,我确实有点迷茫,恳求各位大佬能留下你们宝贵的建议,我一定认真反复深刻学习有一说一 我觉得字节饭挺好吃的!
Jasonnnnnn...:直接把项目代码喂给AI然后让它帮你分析,如果组里已经有一些流程图总结的话最好,没有的话自己画一个 Go的话其实只要把基础语法搞明白就行了,项目里很多都是直接让ai帮你写好然后自己稍微改下,不用学的特别深 ai的话,可以自己写一些md文件来搞点小东西,但除非你打算转算法,否则不用把rag langchain学的特别深,了解下就行了
字节跳动公司福利 1371人发布
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务