代码提交到哪里去了
What: Git分布式版本控制系统
Why:
-
版本控制
,记录每次改动,可以多人操作,使源代码的发布和交流极其方便 -
分布式
,克隆某个节点的内容,就可以成为一个独立的版本库,并在此基础上可以自行开发
How:
git init/git clone --> git add --> git commit --> git push 之后,你的代码会被直接提交到代码仓库
代码怎么被别人review
Gerrit是一个开源的code review(代码审核)系统,使用版本控制系统Git作为底层。
- 基于
Web
的服务 - gerrit的特点在于不允许直接将本地修改同步到远程仓库。必须先push到gerrit服务器上,等待
审核
(review)。 - 注意,一是必须生成
Change-Id
, 另一个是依赖于refs/for/*
的分支
想跑code检查和UT
Jenkins是一款开源工具,主要用于持续集成开发,侧重于代码质量保证。
- 可扩展性
- 页面一键配置
- 自动化检查,例如code检查, 单元测试
- 报告易读, 视图化
一条完整的代码提交链
用户提交代码 -> 提交到Gerrit库 -> 触发Jenkins自动测试,测试通过Verified +1
-> 人工审核Review,review通过+2 -> Gerrit执行Replication -> push Git repo
工具比较
CVS
- 开启版本控制之门
- 早期的主流源代码管理工具
SVN
- 全称是Subversion,集中式版本控制之王
- 是CVS的接班人,速度比CVS快,功能比CVS多且强大
- 在国内软件企业中使用最为普遍
Git
- 优秀的分布式版本控制管理工具
- 目前被越来越多的开源项目使用
- 在国内企业尚未大范围普及
目前公司代码控制路线:
- Git + Gerrit
- SVN + Review Board
术语
- Git, SVN, CVS : 版本控制系统
- Gerrit, Review Board:代码检视工具
- Gitlib:是用于实现Git功能的开发库
- Gitweb: Git的可视化web 界面, 源码是在git里面的
- Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
- Gitlab:是一个基于Git实现的在线代码仓库托管软件,可以用gitlab搭建一个类似于* Github一样的代码管理工具