原文:https://www.cnblogs.com/wsnbba/p/10171052.html

 
  • 使用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

初始环境

主机名

IP

备注

Git01

10.1.1.128

Git客户端

Git02

10.1.1.129

GitLab服务器

安装GitLab

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

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

查看GitLab启动状态

查看GitLab版本号

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

最少8位

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

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

GitLab中文社区版补丁包安装

备份英文版GitLab

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

重新配置GitLab

重新启动GitLab

重新刷新浏览器访问GitLab

使用GitLab

创建一个新项目

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

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

修改后的两行内容

重新配置GitLab

重新启动GitLab

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

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

在Git01客户端上做

刷新浏览器

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

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

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

克隆远程仓库GitLab的linux分支

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

配置GitLab的ssh秘钥连接方式

在Git01上生成秘钥对

将公钥的内容复制到GitLab上

在浏览器端打开GitLab

添加成功

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

配置GitLab邮件服务

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

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

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

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

修改成如下

重新加载GitLab配置文件

重新启动GitLab

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

开启GitLab控制台

GitLab的账号注册及分组

账号注册测试

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

开启GitLab邮箱验证功能

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

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

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

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

创建一个项目组

给组添加成员并授权

  • Guest访客:

    • 只能发表评论,不能读写项目库
  • Reporter报告者: 
    • 只能克隆代码(读),不能提交代码(修改)(产品测试)
  • Developer开发人员: 
    • 可以进行代码的读写(普通程序员)
  • Master主程序员: 
    • 可以添加项目成员,添加标签,创建和保护分支(产品经理)
  • Owner所有者: 
    • 拥有所有权限(一般不用此权限)

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

给项目组创建一个新项目

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

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

测试克隆GitLab到本地仓库

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

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

测试提交除master的分支到GitLab

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

 
 
 

GitLab企业级代码管理仓库的更多相关文章

  1. 使用scm-manager搭建git/svn 代码管理仓库

    使用 scm-manager 搭建 git/svn 代码管理仓库 1.在官网上下载scm-manager 下载地址https://www.scm-manager.org/download/ 2. 配置 ...

  2. 使用 gitlab 进行代码管理

    这里使用 gitlab 做服务器, 客户端主要使用 git extensions. ============================= gitlab 项目成员类型: ============= ...

  3. 使用 scm-manager 搭建 git/svn 代码管理仓库(一)

    1.在官网上下载scm-manager 下载地址  https://www.scm-manager.org/download/ 选择下载文件 2. 配置java 环境 参照文章:https://jin ...

  4. java接口自动化(五) - 企业级代码管理工具Git的配置

    1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...

  5. 使用 scm-manager 搭建 git/svn 代码管理仓库(二)

    主要介绍scm的配置. 1.配置为在Windows服务中启动scm-manager的启动方式有多种,可以在DOS(即命令行CMD模式)中启动,也可以在Windows服务中启动. 下面我们采用Windo ...

  6. jenkins实现以gitlab为代码仓库的构建

    简介 前一篇随笔是安装jenkins的过程,比较简单,这一次说一下用jenkins配置以gitlab为代码管理仓库的maven项目的完整个构建过程,以及我碰到的一些问题.由于是maven项目,所以我们 ...

  7. [SVN Mac自带SVN结合新浪SAE进行代码管理]

    前一篇我转载了别人SVN的使用方法,前面的配置和服务器我不是很明白,自己尝试后发现我需要使用到的核心命令是下面一些. 新浪SAE提供了SVN代码管理仓库,只要进入相应应用,然后点击左侧代码管理,到最下 ...

  8. 分布式代码管理 tortoisehg mercurial

    下载客户端:            https://bitbucket.org/tortoisehg/files/downloads mercurial客户端下载:http://mercurial.s ...

  9. 【ConnerStone】SVN代码管理 - 基本使用

    第一步,链接服务器,创建代码管理仓库 第二步,输入服务器的配置,链接服务器(例子是以svn:// 为例子) 第三部 ,链接成功后,SVN的基本界面组成 第四步 从仓库中check out你需要的项目 ...

随机推荐

  1. QT QWidget 关闭的流程

    当QWidget被点击右上角“X”关闭时: 1.调用虚函数closeEvent 2.调用QWidget的析构函数

  2. 用poolmon来查找内存泄露

    用poolmon来查找内存泄露 poolmon C:\WinDDK\7600.16385.1\tools\Other\i386\poolmon.exegflags     C:\WinDDK\7600 ...

  3. CnblogAndroid使用反馈 & PureMan6留言板

    我们的话: 您可以在这篇博客下评论您使用CnblogAndroid时遇到的问题和您的意见与建议: 或是留言给PureMan6团队,我们会定期查看并进行回复. 同时,关于app的问题,您也可以在Cnbl ...

  4. Python argparse 处理命令行小结

    Python argparse 处理命令行小结 1. 关于argparse是python的一个命令行解析包,主要用于处理命令行参数 2. 基本用法test.py是测试文件,其内容如下: import ...

  5. ASP.NET Core使用Docker-Compose实现多容器应用部署

    一.需求背景 人生苦短,我用.NET Core!前面的<ASP.NET Core使用Docker进行容器化托管和部署>基础课程我们学习了如何使用Docker来部署搭建ASP.NET Cor ...

  6. JS 中判断数据类型是否为 null、undefined 或 NaN

    判断 undefined var aaa = undefined; console.log(typeof(aaa) === "undefined"); // true 判断 nul ...

  7. React的状态管理工具

    Mobx-React : 当前最适合React的状态管理工具   MobX 简单.可扩展的状态管理        MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商 ...

  8. Struts2利用iText导出word文档(包含表格)以提供下载

    J2EE ExcelStrutsXML  在公司实习期间,带我的老师让我实现一功能——在显示课表的页面上上点击“导出文件“时能以word文档形式下载课表.将课表导出到excel里的功能他们已经实现了, ...

  9. Cmder下ssh免密登录配置

    1.本地生成ssh-key 在本地cmder终端下运行下面的命令生成ssh的公钥和私钥文件: ssh-keygen -t rsa 其中,.ssh/id_rsa为私钥文件,留在本地使用,而.ssh/id ...

  10. ImageView基本用法

    1.background通常指的都是背景,而src指的是内容. 2.当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸. 3.scaleType缩放类型设置: fitXY:对图像的横向与纵 ...