源代码管理工具

一、源代码管理工具的起源

为什么会出现源代码管理工具?

为了解决在软件开发过程中,由源代码引发的各种繁琐的问题。

 

二、源代码会引发哪些问题?

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)、代码保密性差,一旦开发者把整个库克隆下来就可以公布所有代码和版本信息。

 

小结:不同源代码管理工具都有着自己不同的适用范围和优缺点,我们要选择适合自己的源代码管理工具,以让自己的效率能达到最大化。

 

posted @ 2021-05-20 20:25  Isk  阅读(309)  评论(0)    收藏  举报