GitLab 培训

官网:https://haomo-tech.com

作者:毫末科技

邮箱:hxg@haomo-studio.com

第一章 GitLab简介

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

1.1.gitlab简史

2011年:GitLab的开始

2011年,Dmitriy对git存储库管理的选择感到不满意。所以和Valery一起,他开始构建GitLab作为解决方案。这个就是GitLab的开始。

2012年:GitLab.com

Sid第一次看到GitLab,他认为这个程序员的协作工具是一个开源的工具,所以你可以为它做出贡献。作为Ruby程序员,他检查了源代码,并对Gitlab的代码质量留下了深刻的印象,并在最初的一年里他的贡献超过了300个。他问Hacker News是否有兴趣使用GitLab.com,于是有数百人报名参加测试。2012年11月,Dmitriy制作了第一个版本的 Gitlab CI。

2013年:“我想全职工作在GitLab上”

运行GitLab的大型企业和机构要求Sid添加他们需要的功能。与此同时,Dmitriy在推特上向世界发出了他想在GitLab工作的消息。Sid和Dmitriy合作,将Gitlab企业版引入了大型企业所要求的功能。

2014年:GitLab成立

2014年,GitLab被正式注册为有限责任公司。GitLab每个月都会在22日发布一个新版本。1月22日的第一次发布:GitLab 6.5。2014年底,2014年12月,GitLab 7.6发布。在那年年底,我们向Y Combinator提交了申请。

2015年:Y Combinator

在2015年初,几乎整个GitLab团队飞往硅谷参加Y Combinator的活动。到2015年3月,团队中已经有9个人。

2016年:增长

2016年为Gitlab做出贡献的人数已经超过1000人。超过10万个组织和数百万用户正在使用GitLab。我们的团队有100人,增加到140多人。9月份,我们宣布了我们的总体计划,筹集2000万美元的B轮融资。

1.2.gitlab的现状

Gitlab是一个开源项目,目前已经有来自世界各地的1700多人参与,Gitlab Inc 有超过35个国家的员工。现在的gitlab将所有创意作品从只读改为读写,以便每个人都可以做出贡献

1.3.gitlab发展

1.确保每个人都能为gitlab作出贡献。

2.成为软件开发生命周期中最常用的软件。

3.完成基于约定优于配置的单个应用程序的产品愿景。

4.与聪明的同事一起工作,能够提供一种进步的工作环境。

5.保持独立,以保持价值观。由于采取外部投资,我们需要流动性事件。为了保持独立,我们希望这是一个IPO,而不是被收购。

第二章 GitLab下载安装(CE版)

2.1.下载gitlab安装包

官网下载速度较慢 建议先行下载

(1).https://about.gitlab.com/downloads/

(2).国内的源 里面可以找到最新的版本:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/trusty/main/g/gitlab-ce/

2.2.安装依赖

sudo apt-get install curl openssh-server ca-certificates postfix

2.3.配置postfix邮箱

选择 Internet Site (F12) Enter 下一步

这里设置FQDN 使用默认即可。

2.4.安装gitlab安装包

sudo dpkg -i gitlab-ce_7.10.5~omnibus-1_amd64.deb

PS:

官网配置到这里。

出现 It looks like… 表示安装成功!

2.5.配置 gitlab

这一步在官方的文档里面没有,但是如果没有配置的话,直接启动GitLab,会出现不正确的FQDN错误,导致无法正常启动。因此必须做配置。

sudo mkdir -p /etc/gitlab

sudo touch /etc/gitlab/gitlab.rb

sudo chmod 600 /etc/gitlab/gitlab.rb

sudo gedit /etc/gitlab/gitlab.rb

把external_url改成部署机器的域名或者IP地址。

2.6.对GitLab进行重配置 (这一步也是启动 GitLab)

sudo gitlab-ctl reconfigure

2.7.查看启动状态

sudo gitlab-ctl status

2.8.打开浏览器登陆

按照上面设置的external_url访问,第一次登陆默认管理员密码和用户名:

Username: root

Password: 5iveL!fe

登陆进去可做修改

第一次启动的时候,需要初始化大量的东西,经常会出现502错误,通常是由于内存不足的原因导致,所以需要准备好足够的内存。官方推荐生产环境中使用2G内存,2核CPU。虚拟机中测试1GB内存基本就可以了。

第三章 GitLab的配置与使用

1、创建新项目

1-1.登录gitlab网址成功后,点击右侧导航条上的 “+” 就可以进入创建项目的页面

1-2.在创建工程的页面,按照要求填写项目的名称和可见性等信息。

Project path:项目的路径,一般可以认为是项目的名称
Import prject from:从哪导入项目,提供Github/Bitbucket等几个选项
Description(项目的描述):可选项,对项目的简单描述
Visibility Level(项目可见级别):提供Private(私有的,只有你自己或者组内的成员能访问)/Internal(所有登录的用户)/Public(公开的,所有人都可以访问)三种选项。

2、添加和配置SSH公钥

2-1.SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。
2-2.创建 SSH密钥,并将密钥中的公钥添加到GitLab,以便我们通过SSH协议来访问Git仓库。

SSH 密钥的创建需要在终端(命令行)环境下进行,我们首先进入命令行环境。通常在OS X和Linux平台下我们使用终端工具(Terminal),在Windows平台中,可以使用Git Bash工具,git客户端安装目录下git-bash.exe文件

A:进入SSH目录:cd ~/.ssh

(1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd ~/.ssh进入SSH目录。
(2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步B,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH密钥,如何添加多个sshkey也不难,一般很少用,这里不介绍了。

B:生成SSH密钥

我们通过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你注册gitlab时用的Email地址。
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"
在SSH生成过程中会出现以下信息,按屏幕的提示操作即可

3、获取SSH公钥信息

SSH密钥生成结束后,根据提示信息找到SSH目录,会看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过cat命令或文本编辑器来查看id_rsa.pub公钥信息。
(1)通过编辑器。使用你熟悉的文本编辑器,比如 记事本、Sublime Text等软件打开id_rsa.pub,复制里面的所有内容以备下一步使用。

(2)通过cat命令。在命令行中敲入cat id_rsa.pub,回车执行后命令行界面中会显示id_rsa.pub文件里的内容,复制后在下一步使用。

(3)通过直接使用命令将id_rsa.pub文件里的内容复制到剪切板中

Windows: clip < ~/.ssh/id_rsa.pub

Mac: pbcopy < ~/.ssh/id_rsa.pub

GNU/Linux (requires xclip): xclip -sel clip < ~/.ssh/id_rsa.pub

4、添加SSH公钥到gitlab

4-1.打开gitlab的Profile配置页面,选择SSH Keys,如图:

4-2.添加SSH公钥。填写Title和Key,其中Title是Key的描述信息,Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存即可。

5、导入项目

5-1.设置下git的用户名和邮箱

在提交代码前,还需要设置下git的用户名和邮箱(最好用英文,不要出现中文),这样提交记录才会在gitlab上显示带有你名字的记录。
在命令行窗口输入(windows需要安装打开Git Bash工具才行):
git config --global user.name"your_name"

5-2.导新项目到gitlab上

如果项目存在,需要导入到gitlab,可以通过命令行直接将项目导入上去。
cd "本地存在项目的路径"
git init
git remote add origingit@gitlab.com:USERNAME/PROJECTNAME.git
git add .
git commit -m 'first git demo'
git push -u origin master
(注:将USERNAME和PROJECTNAME替换成用户名和项目的名称)

5-3.导入项目到本地

git clone"你的项目地址"

5-4.如何在gitlab上找到你的项目地址位置,请看下图:


第三章 GitLab同技术对比

1、GitLab特性

(1)内置 CI/CD :GitLab有免费的内置的连续集成/持续交付。

(2)强大的问题跟踪器:能够快速的为多个问题设置状态。

(3)周期分析:GitLab提供了一个面板,可以让团队估算一个项目产生所需要的时间。

(4)GitLab页面:GitLab页面提供了一个简单的系统,可以使GitLab知识库和GitLab CI来托管静态站点。

(5)问题面板:GitLab有问题面板,每一个问题面板的列表都是基于你的问题追踪器上的标签。

(6)内置容器注册表:GitLab容器注册中心是Docker的一个安全的私有注册中心,它允许上传和下载来自GitLab CI的图片,它与Git仓库管理完全集成。

2、Gogs特性

(1)支持活动时间线。

(2)支持 SSH 以及 HTTP/HTTPS 协议

(3)支持SMTP、LDAP和反向代理的用户认证

(4)支持反向代理子路径

(5)支持用户、组织和仓库管理系统

(6)支持仓库和组织级别Web钩子

(7)支持仓库Git钩子和部署密钥

(8)支持仓库工单(lssue)、合并请求(Pull Request)和Wiki

(9)支持添加和删除仓库协作者

(10)支持Gravatar以及自定义源

3、GitHub特性

优点:

(1)pull request,issue都是高级别feature

(2)强调个人,符合hancker更看重名誉/成就感的天性

缺点:

(1)国内访问速度太慢,

(2)不能很好的解决GB2312/GBK,对中文不够友好

(3)wiki功能太多,直接导致文档经常被分离到一个独立的站点

(4)无法解决企业内部的需求,github:fi价格过高

(5)基于git,学习曲线陡峭,企业大规模用git根本不现实。

3、GitHub、GitLab、Gogs类比

参考 :

1.官方安装:https://about.gitlab.com/downloads/#ubuntu1404
2.GitLab Documentation :http://docs.gitlab.com/ce/
3.Postfix邮箱配置指南:
http://wiki.ubuntu.org.cn/Postfix#Postfix_.E5.9F.BA.E6.9C.AC.E8.AE.BE.E7.BD.AE.E6.8C.87.E5.8D.97
4.Ubuntu 14.04下安装GitLab指南:http://www.open-open.com/lib/view/open1433584757328.html
5.GitLab的使用:
https://blog.cnbluebox.com/blog/2014/04/15/gitlabde-shi-yong/

  1. http://docs.gitlab.com/ce/raketasks/backup_restore.html
    https://www.icicletech.com/blog/gitlab-backup-made-easy

  2. http://17173ops.com/2014/11/11/gitlab%E6%90%AD%E5%BB%BA%E4%B8%8E%E7%BB%B4%E6%8A%A4%EF%BC%88%E5%9F%BA%E4%BA%8Edocker%E9%95%9C%E5%83%8Fsameersbndocker-gitlab%EF%BC%89.shtml

8.GitLab High Availability
https://about.gitlab.com/high-availability/

results matching ""

    No results matching ""