a.安装并创建用户

yum -y install curl policycoreutils policycoreutils-python openssh-server openssh-clients postfix
rpm -ivh gitlab-ce-10.0.4-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.26' # 外网ip
vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
listen *:81;
server_name 10.0.0.26;
}
gitlab-ctl reconfigure
gitlab-ctl start

访问http://10.0.0.26:81,默认用户:root,5iveL!fe

设置用户名、密码,创建三个用户zhanghongqi、mafei、lixiang,

创建一个组Linkdood-kaifa

把master权限给zhanghongqi

创建一个项目,owner:Linkdood-kaifa,name:php-login,项目地址为:git@10.0.0.26:Linkdood-kaifa/php-login.git

b.授权

给lixiang授权为组用户,给mafei只授权为项目用户,组用户能看见这个组下的所有项目,项目用户是哪个项目里有他,他才能看到.

Add user to the group:添加lixiang为组用户,编辑用户,设置初始密码--lixiang123456

点击Manage Access,Add user to project:添加mafei为项目用户,编辑用户,设置初始密码--mafei123456

用lixiang这个用户第一次登陆时,需要重置密码--lixiang123,点击Profile Settings上传SSH Keys

在10.0.0.25上生成密钥对,将公钥上传到gitlab,该公钥具有全局唯一性,然后在10.0.0.25上就能以ssh的方式clone项目代码

c.使用

以root用户登陆gitlab,创建一个readme文件并提交,会自动创建一个分支:master-default-protected

deploy key的作用是让某个客户端只能下载代码,不能上传代码,譬如Jenkins.

在Milestone中创建里程碑,以zhanghongqi进入项目,为每个开发者分配任务,创建issue;给lixiang分发两个issue:首页和新闻,

演示开发及提交过程:

git clone git@10.0.0.26:Linkdood-kaifa/php-login.git
git checkout -b firstpage
mkdir first
cd first/
echo "<h1>This is first page</h1>" >> index.html
git add .
git commit -m "shouye"
git push origin firstpage

lixiang开发完首页功能之后,登陆gitlab发出merge请求,Create Merge Request;Assignee:zhanghongqi.

zhanghongqi登陆gitlab,Accept Merge Request接受融合请求.

master融合分支firstpage之后,lixiang这个开发者如何将本地的master更新到最新:

git checkout master
git pull # 更新本地master
# 只有zhanghongqi具有master权限,只有他能以这样的方式提交:
git push origin master
# 其他没有master权限的人只能从分支提交.
# 用规定的语句去关闭zhanghongqi创建的2号issue
git commit -m "close #2"

解决问题:

git clone  ssh://git@10.0.0.26:Linkdood-yw/Linkdood.git
ssh方式:让你输入密码时,说明你没有上传公钥
git clone http://10.0.0.26/Linkdood-yw/Linkdood.git
http方式:输入正确的用户名密码则可以下载 windows上使用git添加远程仓库
cd /e/
mkdir linkdood
cd linkdood/
ssh-keygen.exe
# 公钥位置 /c/Users/daydayup/.ssh/id_rsa.pub,将公钥上传到gitlab
git init
git config --global user.name "lixiang"
git config --global user.email "lixiang@163.com"
git config --list
git remote -v # 查看远程仓库信息

d.备份和恢复

gitlab_rails['backup_path'] = "/data/backups/gitlab"
gitlab_rails['backup_keep_time'] = 604800
mkdir -p /data/backups/gitlab
gitlab-ctl reconfigure
ls -ld /data/backups/gitlab
drwx------ 2 git root 6 Dec 27 19:43 /data/backups/gitlab
# gitlab已经帮你设置好了权限,下面这一步可有可无
chown -R git.git /data/backups/gitlab
# 添加备份gitlab定时任务
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
# 翻译时间戳
1545911517_gitlab_backup.tar
date -d @1545911517-->Thu Dec 27 19:51:57 CST 2018
# 在gitlab上删除项目,恢复,停止数据写入服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1545911517

邮件配置

gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'lixiang@126.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.126.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "lixiang"
gitlab_rails['smtp_password'] = "your_password"
gitlab_rails['smtp_domain'] = "126.com"
gitlab_rails['smtp_authentication'] = "login"

面试之简历很重要:https://blog.csdn.net/X8i0Bev/article/details/85151460

发现公司有这8个现象,建议你慎重考虑;'你还有什么想问的?'面试官最想听到的答案是什么?

gitlab详解的更多相关文章

  1. 转载:centos安装gitlab详解

    原文地址:http://blog.csdn.net/jiangtao_st/article/details/73612298 一, 服务器快速搭建gitlab方法 可以参考gitlab中文社区 的教程 ...

  2. 【转】gitlab CI流水线配置文件.gitlab-ci.yml详解

    目录 GitLab CI流水线配置文件.gitlab-ci.yml详解 实验环境 GitLab CI介绍 .gitlab-ci.yml 配置参数 参数详解 script image services ...

  3. Docker系列10—容器编排工具Docker Compose详解

    本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...

  4. jekins构建触发器详解

    jenkins版本:2.89.2 1.触发远程构建 (例如,使用脚本):通过一个网址的访问来触发构建,这样就不需要登录jenkins系统也能触发构建了. 示例地址: http://localhost: ...

  5. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  6. Angular Npm Package.Json文件详解

    Angular7 Npm Package.Json文件详解   近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...

  7. git概念及工作流程详解

    git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别 ...

  8. kubernetes 控制器详解【持续完善中】

    目录 资源创建详解 一:Pod及常用参数 1.简介 2.模板 3.删除pod 4.设置Pod主机名 5.镜像拉取策略(ImagePullPolicy) 二:RC 1.简介 2.模板 三:Deploym ...

  9. Git应用详解第五讲:远程仓库Github与Git图形化界面

    前言 前情提要:Git应用详解第四讲:版本回退的三种方式与stash 这一节将会介绍本地仓库与远程仓库的一些简单互动以及几款常用的Git图形化界面,让你更加方便地使用git. 一.Git裸库 简单来说 ...

随机推荐

  1. html5音频audio对象封装成vue组件的方式调用以及setTimeout如何在vue2生效 (vue2正在熟悉中,ajax还是用jQuery来写舒服些,里面含有一些php写法可略过) 此网页应用在PC不考虑手机端

    // vue2 组件封装如下: <template> <div> <div><!--vue element 组件的引用 Switch 开关 不懂请自行百度(重 ...

  2. 【Hadoop/Hive/mapreduce】系列之使用union all 命令之后如何对hive表格使用python进行去重

    业务场景大概是这样的,这里由两个hive表格,tableA 和 tableB, 格式内容都是这样的: uid cate1 cate2 在hive QL中,我们知道union有着自动去重的功能,但是那是 ...

  3. 牛客练习赛29 B

    炎热的早上,gal男神们被迫再操场上列队,gal男神们本来想排列成x∗x的正方形,可是因为操场太小了(也可能是gal男神太大了),校长安排gal男神们站成多个4∗4的正方形(gal男神们可以正好分成n ...

  4. ACM-ICPC 2018 徐州赛区网络预赛 I. Characters with Hash

    Mur loves hash algorithm, and he sometimes encrypt another one's name, and call him with that encryp ...

  5. selenium2设置浏览器窗口

    1.窗口最大化 //设置窗口最大化driver.manage().window().maximize(); 2.指定设置窗口大小 //指定呀设置窗口的宽度为:800,高度为600Dimension d ...

  6. android自动化测试之Monkey--从参数讲解、脚本制作到实战技巧

    视频: http://v.youku.com/v_show/id_XODcyMjM1MDA4.html?from=y1.2-1-87.4.4-1.1-1-2-3 PPT: http://www.doc ...

  7. 【Jenskins】安装与配置

    Jenskins教程:http://www.yiibai.com/jenkins/ 一.Jenskins的安装 1.jenskins下载和启动 Jenskins下载地址:https://jenkins ...

  8. Freemaker模板指令

    ${...}:Freemaker将会输出真实的值来替换大括号内的表达式.这样的表达式被称为interpolation(插值). FTL标签(Freemaker模板的语言标签):FTL标签和HTML标签 ...

  9. Educational Codeforces Round 20 D. Magazine Ad

    The main city magazine offers its readers an opportunity to publish their ads. The format of the ad ...

  10. 用requests自动访问网页,下载网页内容

    import requests # 请求下载excel def downloading(text_path): # 访问要下载的链接文件 with open(text_path) as f: for ...