一、初始GitLab

GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

Git的家族成员

Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。

二、实验环境(rhel7.3版本)
1、selinux和firewalld状态为disabled

2、各主机信息如下:

主机 ip
server1(git) 172.25.83.1

三、Gitlab常用命令

gitlab-ctl start   #启动所有gitlab组件;
gitlab-ctl stop   #停止所有gitlab组件;
gitlab-ctl restart   #重启所有gitlab组件;
gitlab-ctl status   #查看服务状态;
gitlab-ctl reconfigure   #修改配置文件之后,重新加载gitlab配置文件并启动所有gitlab组件
vim /etc/gitlab/gitlab.rb   #修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace   #检查gitlab;
gitlab-ctl tail   #查看日志;
gitlab-ctl --help   #查看gitlab命令的帮助

四、部署GitLab

1、下载并安装Gitlab社区版软件:gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm

[root@server1 ~]# ls
gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm
[root@server1 ~]# yum install gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm -y   #安装GitLab社区版。ce表示社区版,ee表示企业版

2、编辑配置文件/etc.gitlab/gitlab.rb

[root@server1 ~]# vim /etc/gitlab/gitlab.rb 13 external_url 'http://172.25.83.1'   #访问gitlab的地址
[root@server1 ~]# gitlab-ctl reconfigure   #重载服务,过程较长耐心等待

重载服务之后,查看启动的所有的gitlab组件


[root@server1 salt]# gitlab-ctl status
run: alertmanager: (pid 1300) 275s; run: log: (pid 1298) 275s
run: gitaly: (pid 1293) 275s; run: log: (pid 1292) 275s
run: gitlab-monitor: (pid 1297) 275s; run: log: (pid 1296) 275s
run: gitlab-workhorse: (pid 1285) 275s; run: log: (pid 1284) 275s
run: logrotate: (pid 1280) 275s; run: log: (pid 1279) 275s
run: nginx: (pid 1289) 275s; run: log: (pid 1288) 275s
run: node-exporter: (pid 1287) 275s; run: log: (pid 1286) 275s
run: postgres-exporter: (pid 1302) 275s; run: log: (pid 1301) 275s
run: postgresql: (pid 1278) 275s; run: log: (pid 1274) 275s
run: prometheus: (pid 1299) 275s; run: log: (pid 1294) 275s
run: redis: (pid 1277) 275s; run: log: (pid 1273) 275s
run: redis-exporter: (pid 1291) 275s; run: log: (pid 1290) 275s
run: sidekiq: (pid 3104) 90s; run: log: (pid 1281) 275s
run: unicorn: (pid 1276) 275s; run: log: (pid 1275) 275s

3、登录gitlab http://172.25.83.1

用户:root 第一次登录需要强制修改密码(密码至少要8位)

用修改过后的密码进行login

4、创建Project

<1>安装Git工具linux:安装Git,使用自带的源安装。—其实在之前配置Git本地仓库时已经做过这步,这里不需要再做

[root@server1 ~]# yum install git -y

<2>生成密钥文件:使用ssh-keygen生成密钥文件.ssh/id_rsa.pub—其实在之前配置Git本地仓库与Github远程仓库关联时已经做过这步,这里不需要再做

[root@server1 ~]# ssh-keygen
[root@server1 ~]# ls .ssh/
id_rsa  id_rsa.pub

<3>在GitLab的主页中新建一个Project

在web界面点击“Create  a  project”:

在Project  name中填入要创建的项目的名称(我这里创建的项目的名称是test),勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件,并点击“Create project“创建工程

根据提示,我们点击橙色字体的“add  an  SSH  key”,进行SSH  key的添加

[root@server1 ~]# cd .ssh/
[root@server1 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3xeeqOavrqvenQHbGkepogV1YbggV/086mA28HX1iXe3MVXIKt9+1gBJdN8lmhUz9HPgADPBhaOfM3jgP459lf9bFBqd0x5doOA+JN0LtEiM0K4kSQ8yb3ViExN8iqLd4jxVhcjIuPmHfD+JhEG0iGJ79tXNL3m7GlONNq7lODvNuquq5kUK2u7/9cJfI9Bmow8lX92qxF0jz82n73UeYOvCh1069vWDVbONCUB7lJMdXQPC2XPfelyuWmDGExxdUqM4xLcTBBFx5XsMyjQvA+zljytYKphgNEO3hC0hWGxKnEw4R5U/stAROBG/W+nNzkupoWGFjIo1Zax52PY+x root@server1


点击Add key

5、克隆项目test,在本地生成同名目录,并且目录中会有所有的项目文件

<1>进入创建的test项目主界面

点击Your  projects

点击Administrator / test

<2>将Gitlab上的远程项目test克隆到本地

[root@server1 ~]# git clone git@172.25.83.1:root/test.git   #在哪个目录下执行该命令都可以,我这里想把克隆到本地的test项目放在root用户的家目录下,所以我这里在root用户的家目录下执行该名林。
Cloning into 'test'...
The authenticity of host '172.25.83.1 (172.25.83.1)' can't be established.
ECDSA key fingerprint is 36:fe:bc:26:f8:92:25:e4:b6:f3:d3:54:dc:06:a5:c0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.83.1' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@server1 ~]# ls
test

注意把Git库的地址换成你自己的,然后进入test目录看看,已经有README.md文件了:

[root@server1 ~]# cd test/
[root@server1 test]# ls
README.md
[root@server1 test]# cat README.md
# test

6、我们可以在本地项目test中编辑内容,并将内容推送到Gitlab远程项目test下

<1>添加git用户信息—其实在之前配置Git本地仓库时已经做过这步,这里不需要再做

[root@server1 demo]# git config --global user.name xjj   #设置用户名
[root@server1 demo]# git config --global user.email xjj@xjj.com   #设置用户邮箱
[root@server1 ~]# pwd
/root
[root@server1 ~]# cat .gitconfig
[user]name = xjjemail = xjj@xjj.com

<2>创建需要上传到GitLab中的目标文件

[root@server1 test]# pwd
/root/test
[root@server1 test]# echo www.xin.com > index.html   #必须在项目目录test下执行该命令
[root@server1 test]# cat index.html
www.xin.com

<3>将index.html文件加入到索引中

[root@server1 test]# git add index.html

<4>将index.html提交到本地仓库

[root@server1 test]# git commit -m "add index.html"
[master 9bcf5d2] add index.html1 file changed, 1 insertion(+)create mode 100644 index.html

<5>将文件同步到GitLab服务器上

[root@server1 test]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 278 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@172.25.83.1:root/test.gitdf45c1d..9bcf5d2  master -> master
Branch master set up to track remote branch master from origin.

<6>在网页中查看上传的index.html文件已经同步到GitLab中

点击index.html

Linux下GitLab的安装及使用相关推荐

  1. Linux 下 GitLab 安装教程

    Linux 下 GitLab 安装教程 安装 Linux 下载 GitLab 安装 GitLab 登录 GitLab GitLab 汉化 GitLab 设置密钥 卸载 GitLab 为了便于以后使用, ...

  2. linux下编译libuv,linux下libuv库安装教程

    下载并编译libuv libuv需要自己手动下载源码,并手动编译. 当前目录为:/home/xlz/test/github/,在后面,会用$PATH来代替,我的系统的Debian8,64bit. $g ...

  3. Linux下Tomcat的安装配置

    Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/down ...

  4. linux下从git获取有权限的代码,linux下从源代码安装git

    之所以有这样的需求,是因为部分预安装的git版本太低,很多功能没有并且安全性存在问题. 比如git submodule add xxx@host:yyy.git必须在父repo的root目录安装,而新 ...

  5. linux编译安装jpeg,Linux下JPEG库安装脚本(转)

    Linux下JPEG库安装脚本(转)[@more@]该脚本用于在Linux下安装JPEG库,在安装GD库的时候如果没有JPEG库,GD将不能生成JPEG格式的图象. 作者: 何志强#----where ...

  6. Linux下图解minicom安装

    Linux下图解minicom安装 minicom是一个串口通信工具,就像Windows下的HyperTerminal.可用来与串口设备通信,如调试交换机和Modem等.它的Ubuntu软件包的名称就 ...

  7. Linux下的软件安装方法介绍

    本文目录 一.Linux下的软件安装方式 二.在线安装 三.使用dpkg从本地磁盘安装deb软件包 本文目录 一.Linux下的软件安装方式 通常Linux上的软件安装主要有三种方式: 在线安装 从磁 ...

  8. linux下nginx编译安装

    转载自: http://hanqunfeng.iteye.com/blog/697696 一.下载nginx 下载地址:http://www.nginx.org/ 选择nginx-0.8.36 将该下 ...

  9. linux下pptpd的安装配置(×××)

    linux下pptpd的安装配置(×××)--单网卡×××实现 (本文部分内容摘自互联网,特此声明!)          环境介绍:Linux(redhat) 2.6.18 +PPP+PPTPD    ...

最新文章

  1. 屏幕坐标系和视口坐标系
  2. 【Matlab】求解积分方程的数值解
  3. Python之fastparquet:fastparquet的简介、安装、使用方法之详细攻略
  4. 原: 安装VMtools过程流水帐
  5. vue引入id3_vue常见知识点
  6. Bootstrap CSS 编码规范之不要使用 @import
  7. python中可迭代对象,迭代器,生成器的区别和联系
  8. 自动化测试是测试人员的遮羞布?
  9. 软件实习项目4——校园一卡通管理系统(实验准备与设计)
  10. 大学英语2 unit4 第五题
  11. JAVA 算法 回溯
  12. oracle 删掉同义词,【oracle删除同义词】作文写作问答 - 归教作文网
  13. Terraform 学习总结(6)—— 基于阿里云平台上的 Terraform 实战
  14. 开始我的Python学习历程
  15. FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning(论文翻译)
  16. android棉花糖,清甜棉花糖:安卓M/Android 6.0上手体验评测
  17. php中跨页面id的获取,excel跨表格提取数据?phpexcel 读取excel里的数据并在页面显示出来...
  18. STM32和emWin必须知道的那些事
  19. 用仿ActionScript的语法来编写html5——第七篇,自定义按钮
  20. Pandaboard Es debug

热门文章

  1. usb大容量存储设备驱动_usb无法识别怎么办 如何解决usb识别故障【详细步骤】...
  2. php进程间通信 yoc_续上篇Swoole多进程数据共享的问题
  3. php 邮件验证_PHP程序来验证电子邮件地址
  4. go zap去除程序名称_适用于Zip,Zap和Zoom游戏的Python程序
  5. 已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。
  6. VS2019使用NASM编译汇编文件
  7. 儿童的身高标准对照表_2020“儿童身高标准”出炉,10岁身高140,你家娃达标吗...
  8. uva 11387——The 3-Regular Graph
  9. 1346. 检查整数及其两倍数是否存在 golang
  10. 581. 最短无序连续子数组 golang