程序员

注册

 

发新话题 回复该主题

程序员编程开发网站,为什么要有版本控制工 [复制链接]

1#

作为程序员,做开发写网站写系统,少不了对代码进行版本控制,十年之前第一次接触这种东西,一直不太了解,有疑惑为什么还要版本控制这种东西呢?网站做好后不就完事了么?没想到版本控制对于程序员辅助开发,是何等的重要。

版本控制工具从十年前的CVS、SVN用到现在被广泛接受的Git都接触过,下面给想进IT这个行业的小伙伴们分享一下个人对这种工具的理解。

作用一,备份用

是的,代码需要备份的,这可能是版本控制工具的一个比较弱的功能,但真的很管用。程序员每做一步功能性的更新和迭代,都需要备份一次,这是一个很好的习惯,而在版本控制工具中你不需要再复制和粘贴,产生大量的代码冗余,你只需要提交一次到服务器中就可以了,注意,千万别写好几个功能后再一次提交,这并不是一个非常好的习惯,刚入行的程序员往往很容易范这个问题,一提交就好几个功能集中在一起提交。之前小编范过这个问题,提交的功能,有几个要留下有几个要弃用返回到之前的一个时间点,而这些功能错综复杂的交互数据,使这项工作施行起来要多复杂有多复杂。吃了这次教训后,才知道版本控制的重要性。

按功能提交代码的好处很多,一来,可以知道哪次提交的具体功能,方便测试的同学单元功能测试。二来,是业务上的需求,可以方便找回之前的代码,因为可能需求改来改去,感觉还是以前写的功能好,需要回到以前某个时间点上,你只需要找一找那次提交的状态码,一条命令就可以回到那个时间点,而这个场景在实际开发中是经常遇到的。这时的版本控制工具就类似时间机器,可以让你的代码和网站很方便地返回去。

作用二,协调开发用

这个功能算是版本控制器的主要功能,开发一般很少有像ruby语言一样,一个人做一套系统,大部分的公司的开发团队少则十几个人,多则上百。当多个人共同开发一套系统的时候,你改一部分,我改一部分,肯定有代码冲突的地方,当多个人同时改了一个文件,这么多人,每个人改哪一块了?最终以谁的代码为准?如何处理这种场景下的代码冲突?这就是版本控制的协调开发作用,这在没有工具之前是非常麻烦,你需要打开至少两个窗口,一行一行的比较。

十年前在第一家软件公司做开发的时候,公司用的是svn做版本控制,当时还没有git,当时市面上比较流行的是cvs和svn这两款,两个差不太多,随便用一款就行。我们向服务器提交的代码如果有冲突的时候,系统会以红色的代码块来做标记,提示我们需要更改,正常无冲突的代码是绿色的。

而git是以多个左尖号来标注冲突的代码,凡是有改动的,均会以这种方式来注明。解决git冲突的办法就是把有尖号这一行删除,保留想要的代码块就可以了,具体长什么样子可以看下图。

版本控制工具的选择

CVS、SVN、Git是当下被广泛认可的版本控制工具,SVN是集中式的管理,git是分布式的。版本控制工具不像现在开发的框架一样,各有千秋,各有优势,现在基本上大部分新兴团队都会选择git做为代码管理的工具,而服务器部署来说,git也是非常方便的。

git功能很多,可以完成不同的业务场景需求,但我们团队用的时候并没有那么复杂的用,对于前沿的开发人员来讲,可能最多用到的就是四条命令,gitpull和gitadd和git

分享 转发
TOP
发新话题 回复该主题