源代码管理工具
一、源代码管理工具的起源
为什么会出现源代码管理工具?
为了解决在软件开发过程中,由源代码引发的各种繁琐的问题。
二、源代码会引发哪些问题?
1、无法后悔:做错了一个操作后,没有后悔药可以吃
2、版本备份:费空间、费时间
3、版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本
4、代码冲突:多人操作同一个文件(团队开发中的常见问题)
5、权限控制:无法对源代码进行精确的权限控制
6、追究责任:出现了严重的BUG,无法得知是谁干的,容易耍赖
源代码管理工具就是为了解决上述问题而生的!
三、源代码管理工具作用:
能追踪一个项目从诞生一直到定案的过程
记录一个项目的所有内容变化
方便地查阅特定版本的修订情况。
四、常见的源代码管理工具
CVS:
开启版本控制之门。1990年诞生,“远古时代”的主流源代码管理工具。
SVN:
全称是Subversion,集中式版本控制之王者。是CVS的接班人,速度比CVS快,功能比CVS多且强大。在国内软件企业中使用最为普遍(70%~90%)
五、当前热门源代码管理工具优缺点对比:
|
工具 |
优点 |
缺点 |
|
svn |
SVN 的安全性和版本管理功能较强,可以实现异地开发的支持 |
SVN 安装和使用多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用 SVN 进行管理。 |
|
vss |
(1)使用简便易学,配置管理的功能比较基本,提供文件的版本跟踪功能; (2)对用户的数目是没有限制的,因此使用 VSS 的费用是较低的。 |
VSS 的功能和安全性较弱,且只对 windows 平台进行支持,建议作为项目配置管理的入门时采用的工具; |
|
ClearCase |
功能完善,安全性好,可以支持复杂的管理. |
学习曲线和学习成本高,需要集成 ClearQuest 才能完成完整的配置管理功能。 |
|
GitHub |
(1)开源的分布式版本控制工具; (2)git是最快、最简单、最流行的; (3)用户可以十分轻易地找到海量的开源代码。 |
只对 windows 平台进行支持,不能运行在其他操作系统上。 |
下面来介绍当前主流的源代码管理工具之一:GIT
1、Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS, Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。
2、git是一款开源的分布式版本控制工具
在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
3、git的起源:
作者是Linux之父:Linus Benedict Torvalds
当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
4、git的现状:
一款伟大的分布式源码代理管理工具
在国外已经非常普及,国内并未普及(在慢慢普及)
越来越多的开源项目已经转移到git。
5、git的工作流程
分布式和集中式的最大区别在于:在分布式下
开发者可以本地提交
每个开发者机器上都有一个服务器的数据库
拥有一个本地的代码仓库

如果是多人团队开发,最好还是搭建一个远程仓库
搭建远程仓库的途径
自己搭建一个git服务器:费时费力
在GitHub上托管项目:公开项目免费、私有项目收费,很多第三方开源项目
在oschina上托管项目:完全免费,在国内访问速度快(推荐使用)
搭建GitHub远程仓库 – 配置SSH Key


拷贝仓库地址,用于下载到本地

这样就可以大大提高多人开发的开发效率。
6、Git的功能特性
从一般的开发者角度来说,其功能如下:
(1)、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
(2)、在自己的机器上根据不同的开发目的,创建分支,修改代码。
(3)、到单机上自己创建的分支上提交代码。
(4)、在单机上合并分支。
(5)、把服务器上最新的代码fetch下来,然后跟自己的主分支合并。
(6)、生成补丁(patch),把补丁发送给主开发者。
(7)、看主开发者的反馈,如果主开发者发现两个一般的开发者之间有冲突(他们之间可以合作解决的冲突),就要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
(8)、一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突后再向主开发者提交补丁。
7、优点:
(1)、适合分布式开发,强调个体。
(2)、公共服务器压力和数据量都不会太大。
(3)、速度快,灵活。
(4)、任意两个开发者之间可以很容易解决冲突。
(5)、具有本地库,可以离线工作,然后再上传。
8、缺点:
(1)、资料少。
(2)、学习周期相对而言比较长。
(3)、不符合常规思维。
(4)、代码保密性差,一旦开发者把整个库克隆下来就可以公布所有代码和版本信息。
小结:不同源代码管理工具都有着自己不同的适用范围和优缺点,我们要选择适合自己的源代码管理工具,以让自己的效率能达到最大化。

浙公网安备 33010602011771号