GitLab 是一个面向专业场景的项目管理与代码托管平台,支持浏览源代码、跟踪缺陷与注释,并可按团队角色控制仓库访问权限。它提供提交历史与文件历史库的查看能力,还能收集代码片段,方便重复使用并在需要时快速检索。此处提供的 Windows 版本可承载基于 Git 的源码存取服务,作用等同于一个 Git 代码库,配有可视化界面和后台管理面板,适合有相应需求的用户安装使用。

1、配置yum源
打开终端后,可以编辑 /etc/yum.repos.d/gitlab-ce.repo 这个文件。
复制以下内容:
[gitlab-ce]
GitLab 社区版(CE)
Repo_gpgcheck=0
Enabled=1
2、更新本地yum缓存
刷新本地 Yum 软件包缓存索引,让后续安装或查询操作能读取到最新的仓库元数据。
3、部署GitLab社区版
执行 sudo yum install gitlab-ce 命令,即可自动完成最新版本的安装。
执行 sudo yum install gitlab-ce-x.x.x 可安装指定版本的 GitLab CE。
4、GitLab高频操作指令
sudo gitlab-ctl start:启动 GitLab 全部组件。
要一次性关停 GitLab 的全部组件,可以执行 sudo gitlab-ctl stop 这条命令。
执行 sudo gitlab-ctl restart 这条命令,可以重启 GitLab 的全部组件。
sudo gitlab-ctl status# 检查各服务运行情况;
执行 sudo gitlab-ctl reconfigure 完成配置后,再启动服务。
用 sudo 权限打开 /etc/gitlab/gitlab.rb 这个文件,对默认配置进行调整。
gitlab-rake gitlab:check SANITIZE=true --trace # 用于核查 GitLab 运行状态
查看日志可执行 sudo gitlab-ctl tail 命令。
Git 是一款分布式版本控制工具,用于跟踪文件变更并支持多人协作开发。
Git 属于开源工具,采用分布式架构进行版本控制,能够对规模各异的项目版本管理任务作出高效、快速的处理,覆盖从极小到极大的项目范围。
Git 由 Linus Torvalds 打造,采用开放源码方式发布,最初是为了协助管理 Linux 内核的开发工作,属于版本控制工具。
Git 最初被 Torvalds 拿来开发,是当作替代 BitKeeper 的过渡手段——在此之前,Linux 内核开发者遍布全球,主要靠 BitKeeper 管理源代码。开放源码社区里有人判定 BitKeeper 的许可证不适合社区协作,Torvalds 于是着手研究许可证更灵活的版本控制系统。Git 起初只是为 Linux 内核开发提供辅助,后来不少其他自由软件项目也用上了它,比如最近迁到 Git 上的项目,以及许多 Freedesktop 项目也完成了迁移。
GitHub 是一个面向用户的平台,提供空间用于建立 Git 仓库,以便存放代码、文档或其他数据资料。
GitHub 既是一个开源代码库,也是版本控制系统,眼下已有超过 140 万开发者在使用它。应用程序越来越多地迁移到云端,管理软件开发、寻找现成代码,很多人会优先选择 GitHub 这条路。
Git 属于分布式版本控制系统,这一点前面已经提过。它没有所谓主库的概念,每个克隆出来的仓库都能单独使用;任意两个仓库之间若存在差异,都可以合并处理。
GitHub 能承载各类 Git 仓库,并配有网页操作界面;它和 SourceForge、Google Code 这类服务的不同之处在于,从另一个项目拉分支这件事做得特别轻巧,这也成了它最受认可的特点。想给某个项目出力并不复杂:先在项目页面上点“fork”,接着把代码取到本地、把改动提交进刚才分出的那个库,再借助内置的“pull request”机制向项目维护者提出合并请求。有人因此把 GitHub 叫作代码爱好者的 MySpace。
GitLab——以Git为基础的项目管理工具
GitLab 属于开源范畴的仓库管理系统,它以 Git 作为代码管理工具,并在这个基础之上构建出 Web 服务。
三者均建立在 Git 之上,本质上都算 Git 的衍生形态。
GitLab 是一套基于 Ruby on Rails 构建的开源版本管理平台,它让用户能够搭建属于自己的 Git 项目仓库,并通过 Web 界面查看和访问公开或私人的项目内容。
GitLab 与 GitHub 有相似之处,支持查看源代码,也能处理缺陷和注释。团队对仓库的访问权限可在其中进行管理,提交过的版本浏览起来很顺手,同时自带一个文件历史库。成员之间还能借助内置的简易聊天工具 Wall 互相沟通。
该功能还支持将代码片段集中收录,方便后续复用时快速检索,省去重复编写的麻烦。
这一篇教程会带你完成 GitLab 的安装、部署与实际操作全过程。
Git的家族成员
Git 本质上是一套版本控制系统,以命令形式使用,也是一种工具。
Gitlib 属于开发库,用来提供 Git 相关功能的实现。
GitHub 建立在 Git 版本控制之上,是一个面向互联网开放的在线代码托管平台,并配有相应的网站界面供用户访问。
GitLab 这一工具以 Git 为基础构建,能够将代码仓库托管到线上。借助它,用户可以自行搭建一套与 Github 相似的系统,通常被企业或学校用于在内部网络中部署私有的 git 服务。
Gitlab的服务构成
Nginx 是一款用于提供静态 Web 服务的服务器软件。
gitlab-shell:负责执行 Git 命令,并维护 authorized keys 列表的变更。
gitlab-workhorse 是一款体量小巧的反向代理服务程序。
logrotate 是一款用于日志文件管理的工具。
PostgreSQL:一款数据库系统。
Redis 是一款以缓存为核心用途的数据库。
sidekiq:把队列中的任务放到后台异步运行。
unicorn:面向 Rack 应用的 HTTP 服务器,GitLab 的 Rails 应用正是运行在该服务器之上。
GitLab工作流程
GitLab 由 Ruby on Rails 构建而成,是一款开源应用,功能上与 Github 相近,能够托管 Git 项目仓库,用户通过 Web 界面即可查看公开或私人项目。在 5.0 版本之前,服务端需要借助 Gitolite 来搭建;从 5.0 起改用自行开发的 gitlab-shell 替代 Gitolite。若觉得安装过程繁琐,可借助 GitLab Installers 这类一键安装程序完成部署。
1、金丝雀部署(EEP)
新增了金丝雀部署这一发布方式。借助它,你可以先把新代码推送到项目的一小部分范围,一旦出现异常,便有机会以尽量小的代价完成回退;若察觉到问题,也能迅速还原,把对用户造成的干扰控制在较低程度。
Kubernetes 现已具备 Canary Deployments 能力。如果项目正在使用 Auto Deploy,切换到较新的 Auto Deploy 模板后,启动过程在一分钟内即可完成。
2、服务台 Service Desk (EEP)
服务台(Service Desk)功能现已上线,持续扩大的用户群体能够借助每个项目专属的邮件地址,直接向团队发送邮件以获取反馈或支持;这些邮件会在项目内呈现为 GitLab 私密问题,团队只需在问题下评论,即可回复原邮件发件人,从而在 GitLab 内部搭建起一条全新的用户反馈通道。
GitLab 自带服务台功能,团队无需再借助多种工具或额外做外部集成,繁琐与低效随之减少,从收到反馈到软件完成更新的时间也明显压缩。
3、燃尽图(EES)
新增燃尽图功能,用于呈现团队发展方面的反馈。团队现在能够在一个完整里程碑范围内展示并追踪问题完成的进展,从而获得持续优化工作流程所需的信息。
4、受保护标签Protected Tags(CE/EE)
借助 Protected Tags,可以限定哪些人能够创建或更新标签,让标签保护变得更省心。保护分支也采用相近的做法,如今任意项目的权限管控都能轻松完成。
登录GitLab
1、打开浏览器,在地址栏填入ECS服务器的公网IP,就能进入GitLab界面;首次登录时,用户名输入root,密码输入5iveL!fe。
2、用户第一次登录时,系统会要求先更改密码;改好之后,用新密码重新登录即可。
创建Project
1、Linux 下安装 Git:直接通过系统自带软件源完成安装。
执行 yum install git 命令即可安装 Git。
2、创建密钥文件:通过 ssh-keygen 命令生成 .ssh/id_rsa.pub 密钥文件。
3.进入GitLab主页后创建一个新Project
4.添加SSH key,将步骤2生成的密钥文件内容导入其中:
SSH 密钥已完成添加。
克隆操作中需要使用的项目地址如下:
简单配置
1、设置Git仓库中所用的用户姓名(以“上海驻云”作为示例填写)
设置 Git 全局用户名,将其指定为“上海驻云”
2、设置Git仓库使用者的邮箱信息,填入公司分配的电子邮箱地址
配置 Git 全局邮箱时,可执行这条命令:git config --global user.email "support@jiagouyun.com"
3、把项目克隆下来后,本地会创建一个与项目同名的文件夹,该文件夹内包含项目的全部文件。
从远程仓库拉取代码时,可以执行 git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git 这条命令,将目标项目完整复制到本地。
1、进入到项目目录
cd test/
2、生成待上传至GitLab的目标文件
echo “test” > /root/test.sh
3、把目标文件或目录复制到项目目录中
复制文件到当前目录:把 /root/test.sh 拷贝到当前工作目录下。
4、把 test.sh 文件添加至索引
git add test.sh
5、把 test.sh 提交至本地仓库
执行 git commit -m “test.sh” 即可完成提交。
6、把文件同步至 GitLab 服务器
将本地 master 分支推送到远程 origin 仓库,并建立上游跟踪关系。
7、上传的 test.sh 文件已同步至 GitLab,可在网页中查看。
1.支持活动时间线
2.可兼容 SSH、HTTP 及 HTTPS 协议
3.用户认证方式涵盖 SMTP、LDAP 以及反向代理。
4.支持反向代理子路径
5.具备面向用户、组织及仓库的管理系统支持
6.可配置仓库及组织层级的 Web 钩子,Slack 集成亦包含在内
7.具备仓库 Git 钩子与部署密钥支持
8.具备仓库工单(Issue)、合并请求(Pull Request)与 Wiki 功能支持
9.可对仓库协作者进行添加与移除操作
10.兼容 Gravatar 头像服务,同时允许用户指定其他头像来源。
11.支持邮件服务
12.支持后台管理面板
13.可对接 MySQL = 5.5.3、PostgreSQL、SQLite3 以及 TiDB(实验性支持)这几类数据库
具备多语言本地化能力,覆盖14种语言。
(您的评论需要经过审核才能显示)
0条评论