GitLab企业级代码管理仓库
原文: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企业级代码管理仓库的更多相关文章
- 使用scm-manager搭建git/svn 代码管理仓库
使用 scm-manager 搭建 git/svn 代码管理仓库 1.在官网上下载scm-manager 下载地址https://www.scm-manager.org/download/ 2. 配置 ...
- 使用 gitlab 进行代码管理
这里使用 gitlab 做服务器, 客户端主要使用 git extensions. ============================= gitlab 项目成员类型: ============= ...
- 使用 scm-manager 搭建 git/svn 代码管理仓库(一)
1.在官网上下载scm-manager 下载地址 https://www.scm-manager.org/download/ 选择下载文件 2. 配置java 环境 参照文章:https://jin ...
- java接口自动化(五) - 企业级代码管理工具Git的配置
1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...
- 使用 scm-manager 搭建 git/svn 代码管理仓库(二)
主要介绍scm的配置. 1.配置为在Windows服务中启动scm-manager的启动方式有多种,可以在DOS(即命令行CMD模式)中启动,也可以在Windows服务中启动. 下面我们采用Windo ...
- jenkins实现以gitlab为代码仓库的构建
简介 前一篇随笔是安装jenkins的过程,比较简单,这一次说一下用jenkins配置以gitlab为代码管理仓库的maven项目的完整个构建过程,以及我碰到的一些问题.由于是maven项目,所以我们 ...
- [SVN Mac自带SVN结合新浪SAE进行代码管理]
前一篇我转载了别人SVN的使用方法,前面的配置和服务器我不是很明白,自己尝试后发现我需要使用到的核心命令是下面一些. 新浪SAE提供了SVN代码管理仓库,只要进入相应应用,然后点击左侧代码管理,到最下 ...
- 分布式代码管理 tortoisehg mercurial
下载客户端: https://bitbucket.org/tortoisehg/files/downloads mercurial客户端下载:http://mercurial.s ...
- 【ConnerStone】SVN代码管理 - 基本使用
第一步,链接服务器,创建代码管理仓库 第二步,输入服务器的配置,链接服务器(例子是以svn:// 为例子) 第三部 ,链接成功后,SVN的基本界面组成 第四步 从仓库中check out你需要的项目 ...
随机推荐
- 将fasta fastq文件线性化处理
将fasta文件线性化处理 awk '/^>/ {printf("%s%s\t",(N>0?"\n":""),$0);N++;n ...
- Guava 源码分析之Cache的实现原理
Guava 源码分析之Cache的实现原理 前言 Google 出的 Guava 是 Java 核心增强的库,应用非常广泛. 我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Goog ...
- 微信公众平台开发(150)——从新浪云SAE上传图片到图文消息
从新浪云SAE上传图片到图文消息,只能用于图文消息中, 没有个数限制 if (!empty($_FILES['qrcode']['name'])){ $filename = time()." ...
- Linux 系统开机时间及当前时间
最近一次系统开机时间:date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M ...
- MySQL5.7调优参数
1. 更改MySQL Data File位置 datadir=/data/mysqlsocket=/data/mysql/mysql.sock 2. 调整OS参数 * soft nproc 10240 ...
- Java一个对象占用多少字节
虚拟机:Java HotSpot(TM) 64-Bit Server VM (25.221-b11, mixed mode) 对象的内存以字节为单位,且必须是8的倍数,它的构成由3部分组成:对象头+实 ...
- IO流一些问题的总结
字节流的继承体系 字符流的继承体系 字符编码是什么?常见的字符编码表有哪些? 字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象,以便文本在计 ...
- Spring Boot 最流行的 16 条实践解读!
Spring Boot是最流行的用于开发微服务的Java框架.在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践.这些内容是基于我的个人经验和一些熟知的Sp ...
- Vue ----------- 了解, 展示json 数据
Vue.js 是一套构建用户界面的渐进式框架. 优点: 与大型框架不同的是采用自底向上的增量开发的设计, 只聚焦于视图层,不仅易于上手,还便于与第三方库或既有项目整合 当与现代化工具链以及各种类库结 ...
- 不能随便用get和set
有些对象呢,保存一半.如果你只提供get和set,那么备份不了数据. previousState的get和set还是最新的 wtforms InputRequired: DataRequired: i ...