几种源代码管理工具
Posted hx的世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几种源代码管理工具相关的知识,希望对你有一定的参考价值。
前言:
目前市场有几种主流的源代码管理工具,如TFS、Github、Helix Core、Subersion、AWS CodeComiit、Rational ClearCase,其中使用频率较高的是TFS和Github,本文将先大致介绍这两款软件和AWS CodeComiit,随后对Github进行着重介绍。同时,在介绍的过程中会适当地结合团队项目。
正文:
一、TFS
TFS主要针对海量非结构化(结构化的数据是指像SQL(Structed Query Lanuage)中的数据,非结构化就是像NOSQL中的数据)的小数据,通常的文件大小不超过1M,可以满足对小文件存储的需求。
下面是 TFS的读写流程图(以TFS2为例)
二、Github(重点介绍)
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
当我们创建了一个项目时,我们可以在Github上建立一个代码仓库。顺着操作指令或是创建一个README.md文件后,这就变成了一个可公开也可以私有的项目。
在此之后,我们可以在Github上邀请好友与我们一起管理代码仓库。可以对管理者设置不同的权限,比如,只有主要负责人才能管理融合的部分,其他普通管理者都没有这个权限。
每一个建设者可以获得它们专属的克隆代码仓库,以便独立地进行工作。当一个普通管理员建立一个克隆代码仓库时,原始的代码仓库会变成upstream,克隆出来的代码仓库称为origin。当我们将代码放入origin/branch-name时,代码会被自动添加到upstream/develop中。
通常,普通用户习惯于同时修改工程和使用别人的策略作为自己推陈出新的起点。
当一个建设者想要在做点什么新内容时,他可以创建一个新的branch,这个branch取决于正在做的内容。即使他有新的想法,可能有不同的特点,但由于branch这么做并不会影响其他人的成果,反而可以独立地进行代码操作。当我们在Github上新建了一个代码仓库时,会默认地获得一个master branch。通常,所有的代码建设者都会从一个名为develop的master中创建一个新的branch。
当我们的代码工作已经全部完成后,我们可以从我们的branch中创建一个pull request。
此处敲重点,什么是pull request?
不得不说,这个取名真是一言难尽,没使用过Github真是永远翻译不出来...
用形象的话来说,路人甲拷贝了一份别人代码在自己那里,拷贝后发现了原作者的代码有bug,咋办办嘛,又不能直接修改原仓库,这时候就需要路人甲提交一份pull request请求原作者合并他的代码。当原作者看到请求并同意后,路人甲修改的代码就被合并到原仓库中啦~
当我们在进行pull request操作时,有以下几个需要注意的地方:
1.Reviewers:是指那些能够查看你的pull request的人,你可以设置不止一个人去查看pull request。
2.Assignee:是指那些正在处理pull request的人,当然这可以不止一个人。
3.Description:阐述pull request的内容。
4.Labels:这是Github中对pull request进行分类的一种方法,比如可以分为bug,enhancement,feature和wontfix,help wanted,以便其他建设者识别pull request。
5.Milestones:通过添加milestones,可以对pull request进行追踪和分类。
如上所述,pull request有利于路人甲发现源代码中的瑕疵和问题,当我们收到这些pull request时,我们就可以同意请求将代码合并起来。不过在合并前,建议至少让两位组内成员审核过代码,以确保修改后的代码不会对源代码造成消极的影响。
值得一提的是,Github中有不同代码的版本号,我们可以查看不同版本的仓库代码。
如下所示是Bootstrap的不同代码版本。
三、AWS CodeCommit
AWS CodeCommit 是完全托管的源代码控制服务,可托管安全的 Git 存储库。它可让团队在安全且高度可扩展的生态系统中轻松协作处理代码。使用 CodeCommit,无需运行自己的源代码控制系统,也无需担心基础设施的扩展能力。我们可以使用 CodeCommit 将来自源代码的任何数据安全存储为二进制文件,而且它可以无缝兼容现有的 Git 工具。
以上是关于几种源代码管理工具的主要内容,如果未能解决你的问题,请参考以下文章