1 开源项目
提到“开源”两个字,就不得不想到全球最大同性交友网站:GitHub。
- GitHub上面几千万个开源项目,开发人员会将自己的实践经验share给大家,更多的人通过阅读高质量的代码来提高自己。
- GitHub上面还有许多社交、软件过程管理、CI/CD等一系列功能,甚至有些国外公司完全通过GitHub进行整个软件生命周期的管理。
- GitHub 同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的。
2 内部使用:GitLab
- GitLab和GitHub都是基于web的Git仓库,使用起来二者差不多,它们都提供了分享开源项目的平台。GitLab支持私有部署,这对于公司代码的整体安全性来讲也有很大保障,所以最终选用GitLab作为公司内部开源项目的管理平台。
- GitLab有个说法:“如何通过最快的速度把一个点子在10 步之内变成一个产品”。10步如下图(内容摘自gitlab官网**docs.gitlab.com/**)
- IDEA: 每一个从点子开始的项目,通常来源于一次闲聊。可以做一个列表记录,也可以集成第三方工具。
- ISSUE: 最有效的讨论一个需求点的方法,就是为这个点子建立一个工单讨论。团队可以在工单追踪器issue tracker中讨论记录,让需求更清晰;
- PLAN: 一旦讨论得到一致的同意,就是开始编码的时候了。我们需要优先考虑组织我们的工作流,可以使用工单看板Issue Board。
- CODE: 现在,当一切准备就绪,我们可以开始写代码了。
- COMMIT: 当我们为我们的初步成果欢呼的时候,我们就可以在版本控制下,提交代码到功能分支了。
- TEST: 通过GitLab CI,我们可以运行脚本来构建和测试我们的应用。
- REVIEW: 一旦脚本成功运行,我们测试和构建成功,我们就可以进行代码复审code review以及批准。
- STAGING:现在是时候将我们的代码部署到演示环境来检查一下,看看是否一切就像我们预估的那样顺畅——或者我们可能仍然需要修改。
- PRODUCTION: 当一切都如预期,就是部署到生产环境的时候了!
- FEEDBACK: 现在是时候返回去看我们项目中需要提升的部分了。我们使用周期分析 Cycle Analytics来对当前项目中关键的部分进行的反馈。
2.1 登录GitLab
2.2 项目主界面
2.3 GitLab中的权限、用户
-
GitLab中的组和项目有三种访问权限:Private、Internal、Public
- private:只有组成员可以看到;
- internal:只要登录的用户就能看到;
- public:开源的所有的人都可以看到;
-
GitLab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner
- Guest:可以创建issue、发表评论、不能读写版本库;
- Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限;
- Developer:可以克隆代码、开发、提交、push、RD可以赋予这个权限;
- Master:可以创建项目、添加 tag 、保护分支、添加项目成员、编辑项目、核心RD负责人可以赋予这个权限;
- Owner:可以设置项目的访问权限-Visibility Level、删除项目、迁移项目、管理组成员、开发组leader可以赋予这个权限;
2.4 issue管理
-
创建issue
-
issue看板,拖拉管控整个issue的过程
-
里程碑管理,对应每一次发版所涉及到的issue情况,以及整个里程碑的完成情况。
2.5 代码分支、MR管理
- 开发人员的分支创建:新特性以(issue-feature-)开头,bug的解决以(issue-fix-)
- 开发人员提交MR(merge request)
- 指定人员审核代码,可以给出适当意见,通过后合并到master主干。
2.6 发布、feedback
- 使用Git,肯定会接触到Tag。一般在代码封版时使用。一个不可修改的历史代码版本就像被我们封存并记录了起来,不论是运维发布拉取,还是代码版本管理,都是非常方便的,益处多多。
- 查看issue完成情况,并可以给出回复意见
- 通过统计看板,查看代码分支、master主干提交情况
2.7 CI/CD、流水线接入
CI/CD功能可以结合实际情况集成jenkins,进行自动化管理,步骤可参考GitLab官网;
3 结语
到这里,文章只是列出开发人员常用的功能和使用步骤,至于一些细节内容大家可以结合公司内部环境和官方文档进行学习。另外开发使用的IDE(idea或eclipse)集成git的方法,这里就不赘述,大家可按照个人习惯使用。希望通过这个文章,可以让大家更好的熟悉GitLab的使用,能够更快的加入到公司内部开源项目的开发。希望大家持续关注,更重要的是希望有热情、有能力的你加入进来,大家一起进步!
读到这里说明你确实有点兴趣,赶快点赞,提出你的宝贵建议。