跳转至

1. 介绍

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
安装方法是参考GitLab在GitHub上的Wiki页面。

2022年2月消息,极狐(GitLab)正式宣布推出极狐GitLab SaaS (JihuLab.com),
为中国用户提供从源代码托管到开发运维的全栈式一体化DevOps SaaS平台与企业级专家咨询服务。

GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。
使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用Ruby语言写成。
后来,一些部分用Go语言重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。
GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,
Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。

1.1.定位

gitLab 是一个基于 Git 实现的在线代码仓库托管软件
可以用 gitlab 自己搭建一个类似于 Github 一样的系统,一般用于在企业、学校等内部网络搭建 git 私服。
对于软件工程质量管理非常重要。

1.2.功能

提供代码托管、提交审核和问题跟踪
可以很方便的管理权限、代码 review,创建、管理 project

1.3.版本

社区版(CE)
企业版(EE)。

1.4.配置要求

官方文档:

https://docs.gitlab.com/ee/install/requirements.html#cpu

基础:CPU-1,RAM-4G,用于调试安装,用起较慢
推荐:CPU-2,RAM-8G,可以支持100人使用

1.5.拓展:git于svn的区别

git 是分布式的,svn 是中心式的
git 分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看 log。
GIT 分支和 SVN 的分支不同:分支在 SVN 中实际上是版本库中的一份 copy,而 git 一个仓库是一个快照,所以 git 切换、合并分支等操作更快速。

1.6 gitlab 服务组件

Nginx:静态 web 服务器。
gitlab-shell:用于处理 Git 命令和修改 authorized keys 列表。(Ruby)
gitlab-workhorse: 轻量级的反向代理服务器。(go)

它会处理一些大的 HTTP 请求,比如文件上传、文件下载、Git push/pull 和 Git 包下载。
其它请求会反向代理到 GitLab Rails 应用,即反向代理给后端的 unicorn。

logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)
unicorn:An HTTP server for Rack applications,GitLab Rails 应用是托管在这个服务器上面的。(Ruby Web Server, 主要使用 Ruby 编写)

最后更新: 2022-02-20 12:36:30