• 使用GitHub或者码云等公共代码仓库
  • 使用GitLab私有仓库

GitLab是什么?

是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。基础功能免费,高级功能收费。

为什么要使用GitLab?

基础功能开源,可自行搭建 

可以进行权限控制,使得代码对部分人可见 

gitlab使用方便

官方安装文档:​​https://about.gitlab.com/installation/#centos-7​

GitLab国内源下载地址:​​https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/​

在Git02上装GitLab

初始环境

主机名

GitLab企业级代码管理仓库_推送

安装GitLab

GitLab企业级代码管理仓库_推送_02

利用yum安装本地指定的rpm包,好处是自动解决依赖问题

初始化GitLab,只需要执行一次

GitLab企业级代码管理仓库_远程仓库_03

查看GitLab启动状态

GitLab企业级代码管理仓库_配置文件_04

查看GitLab版本号

GitLab企业级代码管理仓库_推送_05

在宿主机输入http:/IP就可以访问了,并给管理员用户设定密码

最少8位

GitLab企业级代码管理仓库_开发人员_06

GitLab企业级代码管理仓库_git_07

登录管理员账号:root 密码:66666666

GitLab企业级代码管理仓库_配置文件_08

登陆后,就可以选择如下功能使用了

GitLab企业级代码管理仓库_推送_09

GitLab中文社区版补丁包安装

GitLab企业级代码管理仓库_远程仓库_10

备份英文版GitLab

GitLab企业级代码管理仓库_远程仓库_11

将中文补丁包的内容覆盖英文版

GitLab企业级代码管理仓库_git_12

重新配置GitLab

GitLab企业级代码管理仓库_开发人员_13

重新启动GitLab

GitLab企业级代码管理仓库_开发人员_14

重新刷新浏览器访问GitLab

GitLab企业级代码管理仓库_推送_15

使用GitLab

创建一个新项目

GitLab企业级代码管理仓库_推送_16

GitLab企业级代码管理仓库_配置文件_17

修改GitLab配置文件/etc/gitlab/gitlab.rb

我们需要修改GitLab的默认访问域名(因为我们是在内网搭建的GitLab),GitLab的默认监听端口是80,但是在企业中这个端口经常被别的服务占用,所以还需要更换端口号

修改后的两行内容

GitLab企业级代码管理仓库_git_18

重新配置GitLab

GitLab企业级代码管理仓库_远程仓库_19

重新启动GitLab

GitLab企业级代码管理仓库_git_20

重新访问浏览器http://10.1.1.129:8888

GitLab企业级代码管理仓库_远程仓库_21


GitLab企业级代码管理仓库_git_22


尝试将本地仓库代码推送到私有GitLab

在Git01客户端上做

GitLab企业级代码管理仓库_git_23

GitLab企业级代码管理仓库_git_24

GitLab企业级代码管理仓库_配置文件_25

GitLab企业级代码管理仓库_git_26

刷新浏览器

GitLab企业级代码管理仓库_远程仓库_27

推送本地仓库标签v1.0到远程仓库GitLab上

GitLab企业级代码管理仓库_配置文件_28

GitLab企业级代码管理仓库_推送_29

尝试在本地仓库克隆GitLab的项目v1.0标签到本地仓库

GitLab企业级代码管理仓库_git_30

推送本地仓库linux分支到远程仓库GitLab上

GitLab企业级代码管理仓库_开发人员_31

GitLab企业级代码管理仓库_git_32


GitLab企业级代码管理仓库_远程仓库_33

GitLab企业级代码管理仓库_推送_34

克隆远程仓库GitLab的linux分支

GitLab企业级代码管理仓库_git_35

克隆的时候加参数-b指定你要克隆的分支 不指定默认克隆的是master分支

GitLab企业级代码管理仓库_开发人员_36

配置GitLab的ssh秘钥连接方式

在Git01上生成秘钥对

GitLab企业级代码管理仓库_远程仓库_37

将公钥的内容复制到GitLab上

GitLab企业级代码管理仓库_远程仓库_38

在浏览器端打开GitLab

GitLab企业级代码管理仓库_推送_39

GitLab企业级代码管理仓库_远程仓库_40

添加成功

GitLab企业级代码管理仓库_开发人员_41

利用ssh方式克隆GitLab上的一个项目

GitLab企业级代码管理仓库_开发人员_42

配置GitLab邮件服务

配置邮箱服务的用途:1,有合并请求时,邮件通知 2,账户注册时,邮件验证 3,修改密码时,通过邮件修改

配置步骤:开启qq邮箱的smtp服务,修改gitlab配置,测试邮件服务是否正常

开启GitLab服务的postfix服务并开启qq邮箱的smtp服务

GitLab企业级代码管理仓库_开发人员_43

GitLab企业级代码管理仓库_配置文件_44

GitLab企业级代码管理仓库_配置文件_45

GitLab企业级代码管理仓库_git_46

修改GitLab配置文件/etc/gitlab/gitlab.rb

GitLab企业级代码管理仓库_配置文件_47

修改成如下

GitLab企业级代码管理仓库_推送_48

重新加载GitLab配置文件

GitLab企业级代码管理仓库_git_49

重新启动GitLab

GitLab企业级代码管理仓库_远程仓库_50

进入GitLab控制台进行邮件发送测试

开启GitLab控制台

GitLab企业级代码管理仓库_配置文件_51

GitLab企业级代码管理仓库_配置文件_52

GitLab的账号注册及分组

账号注册测试

GitLab企业级代码管理仓库_远程仓库_53

GitLab企业级代码管理仓库_开发人员_54

我们在注册的时候,邮箱乱写能注册并登陆,显然在企业是绝对不允许的

开启GitLab邮箱验证功能

重新登陆管理员用户root,密码66666666,进行如下操作

GitLab企业级代码管理仓库_开发人员_55

退出时别忘了保存修改的设置如下图

GitLab企业级代码管理仓库_推送_56

然后退出管理员的登录,进行重新注册

GitLab企业级代码管理仓库_开发人员_57



GitLab企业级代码管理仓库_推送_58

GitLab企业级代码管理仓库_开发人员_59

由上图发现,此时注册用户,已经进不去GitLab了,这是因为GitLab已经自动发了一封邮件给注册用户的邮箱,需要用户进行邮件确认后,方可登录。

GitLab企业级代码管理仓库_git_60


GitLab企业级代码管理仓库_配置文件_61


创建一个项目组

GitLab企业级代码管理仓库_远程仓库_62



给组添加成员并授权

GitLab企业级代码管理仓库_推送_63

GitLab企业级代码管理仓库_配置文件_64

GitLab企业级代码管理仓库_git_65

GitLab企业级代码管理仓库_git_66


  • Guest访客:

    • 只能发表评论,不能读写项目库

  • Reporter报告者:

    • 只能克隆代码(读),不能提交代码(修改)(产品测试)

  • Developer开发人员:

    • 可以进行代码的读写(普通程序员)

  • Master主程序员:

    • 可以添加项目成员,添加标签,创建和保护分支(产品经理)

  • Owner所有者:

    • 拥有所有权限(一般不用此权限)


GitLab企业级代码管理仓库_开发人员_67

GitLab企业级代码管理仓库_推送_68


添加权限成功后,GitLab会自动邮件通知这个用户

GitLab企业级代码管理仓库_git_69

给项目组创建一个新项目

GitLab企业级代码管理仓库_配置文件_70

GitLab企业级代码管理仓库_推送_71


GitLab企业级代码管理仓库_推送_72

进行组成员的项目提交和克隆测试

GitLab企业级代码管理仓库_推送_73

GitLab企业级代码管理仓库_远程仓库_74

GitLab企业级代码管理仓库_配置文件_75

再创建一个普通程序员(开发人员)的账号

GitLab企业级代码管理仓库_远程仓库_76

GitLab企业级代码管理仓库_配置文件_77

GitLab企业级代码管理仓库_开发人员_78

GitLab企业级代码管理仓库_远程仓库_79

GitLab企业级代码管理仓库_推送_80

GitLab企业级代码管理仓库_git_81

GitLab企业级代码管理仓库_配置文件_82

GitLab企业级代码管理仓库_配置文件_83

测试克隆GitLab到本地仓库

GitLab企业级代码管理仓库_推送_84

测试将本地仓库master分支的改变推到GitLab上

测试结果推送失败,因为开发人员没有这个权限,开发人员没有权限修改GitLab上master分支

GitLab企业级代码管理仓库_推送_85


测试提交除master的分支到GitLab

GitLab企业级代码管理仓库_配置文件_86

GitLab企业级代码管理仓库_git_87

说明:普通的开发人员没有权限修改master分支的代码,但是他可以任意创建自己的分支,不能提交到GitLab更不能合并了,在本地仓库可以合并,但是本地仓库合并完了并不能修改master,没有作用,真正的仓库合并,是要在web界面合并的,也就是说在GitLab上的版本合并才是真正的合并,本地合并只是本地的,本地合并完了是推不到master的,推不到就没用。只有主程序员才可以本地合并推到GitLab进行版本合并。




看完打开支付宝扫一扫领个红包吧!


GitLab企业级代码管理仓库_远程仓库_88




  • 使用GitHub或者码云等公共代码仓库
  • 使用GitLab私有仓库

GitLab是什么?

是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。基础功能免费,高级功能收费。

为什么要使用GitLab?

基础功能开源,可自行搭建 

可以进行权限控制,使得代码对部分人可见 

gitlab使用方便

官方安装文档:​​https://about.gitlab.com/installation/#centos-7​

GitLab国内源下载地址:​​https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/​

在Git02上装GitLab

初始环境

主机名

GitLab企业级代码管理仓库_推送

安装GitLab

GitLab企业级代码管理仓库_推送_02

利用yum安装本地指定的rpm包,好处是自动解决依赖问题

初始化GitLab,只需要执行一次

GitLab企业级代码管理仓库_远程仓库_03

查看GitLab启动状态

GitLab企业级代码管理仓库_配置文件_04

查看GitLab版本号

GitLab企业级代码管理仓库_推送_05

在宿主机输入http:/IP就可以访问了,并给管理员用户设定密码

最少8位

GitLab企业级代码管理仓库_开发人员_06

GitLab企业级代码管理仓库_git_07

登录管理员账号:root 密码:66666666

GitLab企业级代码管理仓库_配置文件_08

登陆后,就可以选择如下功能使用了

GitLab企业级代码管理仓库_推送_09

GitLab中文社区版补丁包安装

GitLab企业级代码管理仓库_远程仓库_10

备份英文版GitLab

GitLab企业级代码管理仓库_远程仓库_11

将中文补丁包的内容覆盖英文版

GitLab企业级代码管理仓库_git_12

重新配置GitLab

GitLab企业级代码管理仓库_开发人员_13

重新启动GitLab

GitLab企业级代码管理仓库_开发人员_14

重新刷新浏览器访问GitLab

GitLab企业级代码管理仓库_推送_15

使用GitLab

创建一个新项目

GitLab企业级代码管理仓库_推送_16

GitLab企业级代码管理仓库_配置文件_17

修改GitLab配置文件/etc/gitlab/gitlab.rb

我们需要修改GitLab的默认访问域名(因为我们是在内网搭建的GitLab),GitLab的默认监听端口是80,但是在企业中这个端口经常被别的服务占用,所以还需要更换端口号

修改后的两行内容

GitLab企业级代码管理仓库_git_18

重新配置GitLab

GitLab企业级代码管理仓库_远程仓库_19

重新启动GitLab

GitLab企业级代码管理仓库_git_20

重新访问浏览器http://10.1.1.129:8888

GitLab企业级代码管理仓库_远程仓库_21


GitLab企业级代码管理仓库_git_22


尝试将本地仓库代码推送到私有GitLab

在Git01客户端上做

GitLab企业级代码管理仓库_git_23

GitLab企业级代码管理仓库_git_24

GitLab企业级代码管理仓库_配置文件_25

GitLab企业级代码管理仓库_git_26

刷新浏览器

GitLab企业级代码管理仓库_远程仓库_27

推送本地仓库标签v1.0到远程仓库GitLab上

GitLab企业级代码管理仓库_配置文件_28

GitLab企业级代码管理仓库_推送_29

尝试在本地仓库克隆GitLab的项目v1.0标签到本地仓库

GitLab企业级代码管理仓库_git_30

推送本地仓库linux分支到远程仓库GitLab上

GitLab企业级代码管理仓库_开发人员_31

GitLab企业级代码管理仓库_git_32


GitLab企业级代码管理仓库_远程仓库_33

GitLab企业级代码管理仓库_推送_34

克隆远程仓库GitLab的linux分支

GitLab企业级代码管理仓库_git_35

克隆的时候加参数-b指定你要克隆的分支 不指定默认克隆的是master分支

GitLab企业级代码管理仓库_开发人员_36

配置GitLab的ssh秘钥连接方式

在Git01上生成秘钥对

GitLab企业级代码管理仓库_远程仓库_37

将公钥的内容复制到GitLab上

GitLab企业级代码管理仓库_远程仓库_38

在浏览器端打开GitLab

GitLab企业级代码管理仓库_推送_39

GitLab企业级代码管理仓库_远程仓库_40

添加成功

GitLab企业级代码管理仓库_开发人员_41

利用ssh方式克隆GitLab上的一个项目

GitLab企业级代码管理仓库_开发人员_42

配置GitLab邮件服务

配置邮箱服务的用途:1,有合并请求时,邮件通知 2,账户注册时,邮件验证 3,修改密码时,通过邮件修改

配置步骤:开启qq邮箱的smtp服务,修改gitlab配置,测试邮件服务是否正常

开启GitLab服务的postfix服务并开启qq邮箱的smtp服务

GitLab企业级代码管理仓库_开发人员_43

GitLab企业级代码管理仓库_配置文件_44

GitLab企业级代码管理仓库_配置文件_45

GitLab企业级代码管理仓库_git_46

修改GitLab配置文件/etc/gitlab/gitlab.rb

GitLab企业级代码管理仓库_配置文件_47

修改成如下

GitLab企业级代码管理仓库_推送_48

重新加载GitLab配置文件

GitLab企业级代码管理仓库_git_49

重新启动GitLab

GitLab企业级代码管理仓库_远程仓库_50

进入GitLab控制台进行邮件发送测试

开启GitLab控制台

GitLab企业级代码管理仓库_配置文件_51

GitLab企业级代码管理仓库_配置文件_52

GitLab的账号注册及分组

账号注册测试

GitLab企业级代码管理仓库_远程仓库_53

GitLab企业级代码管理仓库_开发人员_54

我们在注册的时候,邮箱乱写能注册并登陆,显然在企业是绝对不允许的

开启GitLab邮箱验证功能

重新登陆管理员用户root,密码66666666,进行如下操作

GitLab企业级代码管理仓库_开发人员_55

退出时别忘了保存修改的设置如下图

GitLab企业级代码管理仓库_推送_56

然后退出管理员的登录,进行重新注册

GitLab企业级代码管理仓库_开发人员_57



GitLab企业级代码管理仓库_推送_58

GitLab企业级代码管理仓库_开发人员_59

由上图发现,此时注册用户,已经进不去GitLab了,这是因为GitLab已经自动发了一封邮件给注册用户的邮箱,需要用户进行邮件确认后,方可登录。

GitLab企业级代码管理仓库_git_60


GitLab企业级代码管理仓库_配置文件_61


创建一个项目组

GitLab企业级代码管理仓库_远程仓库_62



给组添加成员并授权

GitLab企业级代码管理仓库_推送_63

GitLab企业级代码管理仓库_配置文件_64

GitLab企业级代码管理仓库_git_65

GitLab企业级代码管理仓库_git_66


  • Guest访客:

    • 只能发表评论,不能读写项目库

  • Reporter报告者:

    • 只能克隆代码(读),不能提交代码(修改)(产品测试)

  • Developer开发人员:

    • 可以进行代码的读写(普通程序员)

  • Master主程序员:

    • 可以添加项目成员,添加标签,创建和保护分支(产品经理)

  • Owner所有者:

    • 拥有所有权限(一般不用此权限)


GitLab企业级代码管理仓库_开发人员_67

GitLab企业级代码管理仓库_推送_68


添加权限成功后,GitLab会自动邮件通知这个用户

GitLab企业级代码管理仓库_git_69

给项目组创建一个新项目

GitLab企业级代码管理仓库_配置文件_70

GitLab企业级代码管理仓库_推送_71


GitLab企业级代码管理仓库_推送_72

进行组成员的项目提交和克隆测试

GitLab企业级代码管理仓库_推送_73

GitLab企业级代码管理仓库_远程仓库_74

GitLab企业级代码管理仓库_配置文件_75

再创建一个普通程序员(开发人员)的账号

GitLab企业级代码管理仓库_远程仓库_76

GitLab企业级代码管理仓库_配置文件_77

GitLab企业级代码管理仓库_开发人员_78

GitLab企业级代码管理仓库_远程仓库_79

GitLab企业级代码管理仓库_推送_80

GitLab企业级代码管理仓库_git_81

GitLab企业级代码管理仓库_配置文件_82

GitLab企业级代码管理仓库_配置文件_83

测试克隆GitLab到本地仓库

GitLab企业级代码管理仓库_推送_84

测试将本地仓库master分支的改变推到GitLab上

测试结果推送失败,因为开发人员没有这个权限,开发人员没有权限修改GitLab上master分支

GitLab企业级代码管理仓库_推送_85


测试提交除master的分支到GitLab

GitLab企业级代码管理仓库_配置文件_86

GitLab企业级代码管理仓库_git_87

说明:普通的开发人员没有权限修改master分支的代码,但是他可以任意创建自己的分支,不能提交到GitLab更不能合并了,在本地仓库可以合并,但是本地仓库合并完了并不能修改master,没有作用,真正的仓库合并,是要在web界面合并的,也就是说在GitLab上的版本合并才是真正的合并,本地合并只是本地的,本地合并完了是推不到master的,推不到就没用。只有主程序员才可以本地合并推到GitLab进行版本合并。