Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1430684
  • 博文数量: 188
  • 博客积分: 1784
  • 博客等级: 上尉
  • 技术积分: 2772
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-05 22:20
个人简介

发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。

文章分类

全部博文(188)

文章存档

2020年(12)

2019年(11)

2018年(4)

2017年(3)

2016年(11)

2015年(22)

2014年(19)

2013年(25)

2012年(32)

2011年(49)

分类: 项目管理

2018-05-24 16:53:43

Git有三个类分别为:
Git: 是本地版本控制系统工具。
Github:是官方在线代码托管仓库,可自行注册使用,
GitLab:是自建的一个非官方的自有版本仓库。通俗一点就是公司内部的。

概述讲义:
GitLab是一个开源版本管理系统,是集代码托管,测试,部署于一体的开源git仓库管理软件,可通过web界面来进行访问公开的或私人项目。与Github类似,GitLab能够浏览代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本,并提供一个文件历史库。是目前非常流行好用的研发版本控制系统。

搭建前准备工作:这里是用Centos 7版本的系统

1、关闭防火墙
2、关闭SELinux
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  [root@localhost ~]# setenforce 0 
[root@localhost ~]#systemctl restart firewalld.service
安装Gitlab

1、安装依赖项

点击(此处)折叠或打开

  1. sudo yum install curl openssh-server openssh-clients postfix cronie -y
  2. sudo service postfix start
  3. sudo chkconfig postfix on
  4. sudo lokkit -s http -s ssh
2. 添加GitLab仓库,并安装到服务器上

点击(此处)折叠或打开

  1. curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
  2. yum install gitlab-ce
如果你不习惯使用命令管道的安装方式, 你可以在这里下载  或者  然后安装

点击(此处)折叠或打开

  1. wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm
  2. rpm -ivh gitlab-ce-XXX.rpm

Gitlab 的常用命令

Gitlab命令分为两部分:通用命令 和服务管理命令
通用命令:
语法:gitlab-ctl 命令参数

命令参数如下:

help 帮助

reconfigure       修改配置文件之后,需要重新加载下 show-config      查看所有服务配置文件信息 uninstall 卸载这个软件

cleanse            删除gitlab数据,重新白手起家

服务管理命令:

start 启动所有服务 stop 关闭所有服务

restart            重启所有服务 status 查看所有服务状态

tail                 查看日志信息

service-list 列举所有启动服务

graceful-kill 平稳停止一个服务

配置GitLab
# gitlab-ctl reconfigure      --第一次加载配置的时候会很慢,耐心等待就好,直到加载完成。

开户访问web界面
第一次访问,系统会要求重置新密码,管理员的用户名为root

汉化Gitlab
Gitlab默认语言是英文,对于想加强英文的同学,建议继续使用英文,但要求使用中文,这里需要下载一个汉化包
首先我们要确认下当前我们gitlab的版本,查看版本命令如下:
# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

下载最新的汉化包:
# git clone

如果要下载指定版本的汉化包,需要加上版本号。
例:下载10.5.1,命令如下:
# git clone   -b  v10.5.1-zh

下载完成后,将下载的文件夹内容复制到gitlab目录下
进入gitlab查看补丁版本:# cat  gitlab/VERSION 

复制前先停止Gitlab
# gitlab-ctl stop
# cp -r -f  ./gitlab/*  /opt/gitlab/embedded/service/gitlab-rails/ 
复制时可能不断提示是否要覆盖,这时可能是系统每次执行cp命令时,其实是执行了cp -i命令的别名。出现这种情况可以修改~/.bashrc,在“alias cp=’cp -i’”前加#注释,再刷新文件 source ~/.bashrc

最简单的方法是cp命令前加反斜线\
# \cp -r -f  ./gitlab/*  /opt/gitlab/embedded/service/gitlab-rails/ 

在复制过程中提示,以下信息是正常的


复制完成后,需要重新加载配置,并启动Gitlab
# gitlab-ctl reconfigure   
# gitlab-ctl restart
有可能报502错误,需要重启电脑

再次访问web界面,显示的已经为汉化熟悉的中文

ssh连接
修改项目ssh连接git地址(如果需要公网端口映射非22默认端口连接情况下使用)
1、修改/etc/gitlab/gitlab.rb [再次声明,gitlab.yml中的配置会被这个给覆盖]
启用下面这行,并把端口改为自己服务器的sshd端口,取消注释
gitlab_rails['gitlab_shell_ssh_port'] = 220
2、使之生效,大功告其,编译后重启!
gitlab-ctl reconfigure

http连接
修改/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml文件,注意此项如果重新编译会被重置,切记修改后不要重新编译,只需要重新启动服务即可。

重启服务并重启机器后显示如下

Gitlab私有仓库的使用

登陆进来Gitlab,创建一个项目,但创建项目前我们先创建一个组,让项目归属一个组里

新建一个组

在新建的dev-demo组里,创建一个项目

创建一个项目

在项目里创建一个README文件,一会用于测试用
在项目创建成功后,界面有提示要建ssh-key,这里先建自述文件,后面再来建ssh-key

给README文件添加点内容

在工作区的Git服务器上创建key,再添加至Gitlab
在Git工作区机器上创建ssh-key,我这里用的是192.1.1.52机器来创建ssh-key,Gitlab是在192.1.1.10机器。

点击(此处)折叠或打开

  1. [root@agent02 ~]# ssh-keygen -t rsa -b 4096
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/root/.ssh/id_rsa):
  4. /root/.ssh/id_rsa already exists.
  5. Overwrite (y/n)? y
  6. Enter passphrase (empty for no passphrase):
  7. Enter same passphrase again:
  8. Your identification has been saved in /root/.ssh/id_rsa.
  9. Your public key has been saved in /root/.ssh/id_rsa.pub.
  10. The key fingerprint is:
  11. SHA256:/fqioPb2oKlcjiF8U+Pjw3FSNXcowo2y4qtT/TjV2TA root@agent02
  12. The keys randomart image is:
  13. +---[RSA 4096]----+
  14. | . o . |
  15. | . + = o . |
  16. | o o + . |
  17. | . . . E |
  18. | . oo. S * |
  19. |. oo+.o o o |
  20. |..oo+oX . |
  21. | +.*+Oo+ .. |
  22. | .*o=++.o..o. |
  23. +----[SHA256]-----+

  24. [root@agent02 ~]# cat .ssh/id_rsa.pub
  25. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCkgVRWoKTblJlloKNo8+YcBM3B8AA0X5QoyQGtjoNwz6L1iO2WEhVUqGqVK/ujG+i/NaOCkrVXlowc0a53mB3Wk1Bk+6INxtXmtPDqmSVHamCtuq86XGSIoGbE5j9cYaWasWs0kEx60BO5+/jqz9LWGeFJehDHQd0K32eHQpn836XCIhyXN7mWJ7XmUwYfyf6B9PjO0z/4hsM21qXuE3giQDrGDHCjqkWNoK7hwNwfQGaIo+kClgvgquq6I0d9XWb30C7/Xr+ZuXROHHSncteCJU8Chqk7uiOyUHcgMMrF5AhfEG8wyDQKOPDW3nPin3YvzSZg0jgIn3X9e1dIl4OZoyCIj1OW1gx/JZ0P9xBhjFCcWFjXSVqX34S05F7CiHdW/MIJgJBWc5qFjSTsaIVEUhwc3DzHhPcW1ZEbskqc6kBZyB5Ei3ZIvITPpa9tUV3BHPVFKPio6Leow5Vi0ne+b1Khm3KCKatGdkqRjbyZ6Me1J7+KQnAmT9FmCNo3V8IFs4PpFljDCNBxm93lbaiqAcFeAEhcm1M20BiGGmTJnVMrGGRlXcutnj9G5s0C4oOVL8ujFIS4wwcp6XWWNzkqOw1GiJp9GhFO1fXyg/vdiS+mgeMXjZNsKl4BAPZ+GYbiDOMSGdjXKVch5dmXfwDetbTl4+T/6COX5L0G6ijlVw== root@agent02
上面key已经创建好了,复制上面打印出来的密钥,放到Gitlab里面来


接着再回到刚才test项目里面,查看详情,这里有显示该项目的git链接地址

接下来,在192.1.1.52机器上,把Gitlab里面test项目克隆到本地来

点击(此处)折叠或打开

  1. [root@agent02 ]# echo "192.1.1.10 gitlab.example.com" >> /etc/hosts --注意一定要把Gitlab机器名和IP地址写进hosts记录里

  2. [root@agent02 ]# mkdir /dev-demo
  3. [root@agent02 ]# cd /dev-demo

  4. [root@agent02 dev-demo]# git init
  5. Reinitialized existing Git repository in /dev-demo/.git/

  6. [root@agent02 dev-demo]# git clone git@gitlab.example.com:dev-demo/test.git
  7. Cloning into 'test'...
  8. The authenticity of host 'gitlab.example.com (192.1.1.10)' can't be established.
  9. ECDSA key fingerprint is SHA256:885XnAhlZsdYbCLIzq1qh7cCt+yF9i/AtusSI7QmPcE.
  10. ECDSA key fingerprint is MD5:e9:95:51:51:e4:ce:b9:5c:b1:d7:ce:2a:d8:7d:fe:ee.
  11. Are you sure you want to continue connecting (yes/no)? yes
  12. Warning: Permanently added 'gitlab.example.com,192.1.1.10
在本地模拟开发过程,再和Gitlab同步

点击(此处)折叠或打开

  1. [root@agent02 dev-demo]# vi test/index.html
  2. <h1> 我是GitLab私有服务器 </h1>

  3. [root@agent02 dev-demo]# git config --global user.email "409216159@qq.com"
  4. [root@agent02 dev-demo]# git config --global user.name "LX"
  5. [root@agent02 dev-demo]#
  6. [root@agent02 dev-demo]# git add ./*
  7. [root@agent02 dev-demo]# git commit -m "代码提交index.html"
  8. [master (root-commit) b348c78] 代码提交index.html
  9.  1 file changed, 1 insertion(+)
  10.  create mode 160000 test
代码提交完成后,我们再来到Gitlab里查看项目test里是否有刚提交的index.html文件和内容

点击(此处)折叠或打开

  1. [root@agent02 test]# vi aa.html
  2. <h1> 测试代码 </h1>

  3. [root@agent02 test]# git add ./*
  4. [root@agent02 test]# git commit -m "提交代码"
  5. [master be2c1f8] 提交代码
  6.  2 files changed, 3 insertions(+)
  7.  create mode 100644 index.html

  8. [root@agent02 test]#
  9. [root@agent02 test]# git push
  10. warning: push.default is unset; its implicit value is changing in
  11. Git 2.0 from 'matching' to 'simple'. To squelch this message
  12. and maintain the current behavior after the default changes, use:

  13.   git config --global push.default matching

  14. To squelch this message and adopt the new behavior now, use:

  15.   git config --global push.default simple

  16. See 'git help config' and search for 'push.default' for further information.
  17. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
  18. 'current' instead of 'simple' if you sometimes use older versions of Git)

  19. Counting objects: 5, done.
  20. Compressing objects: 100% (2/2), done.
  21. Writing objects: 100% (4/4), 389 bytes | 0 bytes/s, done.
  22. Total 4 (delta 0), reused 0 (delta 0)
  23. To git@gitlab.example.com:dev-demo/test.git
  24.    d5ef909..be2c1f8 master -> master

配置注册Gitlab时发邮件确认

配置在Gitlab注册用户时的邮件发送确认动作


点击(此处)折叠或打开

  1. [root@gitlab ~]# vi /etc/gitlab/gitlab.rb
  2.     429 gitlab_rails['smtp_enable'] = true
  3.     430 gitlab_rails['smtp_address'] = "smtp.qq.com"
  4.     431 gitlab_rails['smtp_port'] = 465
  5.     432 gitlab_rails['smtp_user_name'] = "409216159@qq.com"
  6.     433 gitlab_rails['smtp_password'] = "QQ password"
  7.     434 gitlab_rails['smtp_domain'] = "qq.com"
  8.     435 gitlab_rails['smtp_authentication'] = "login"
  9.     436 gitlab_rails['smtp_enable_starttls_auto'] = true
  10.     437 gitlab_rails['smtp_tls'] = true
  11.         438 gitlab_rails['gitlab_email_from'] = '409216159@qq.com'
配置完成后,需要重新生成gitlab参数

点击(此处)折叠或打开

  1. [root@gitlab ~]# gitlab-ctl reconfigure

  2. [root@gitlab ~]# gitlab-ctl restart

  3. [root@gitlab ~]# lsof -i:80
  4. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  5. nginx 40422 root 7u IPv4 117999 0t0 TCP *:http (LISTEN)
  6. nginx 40423 gitlab-www 7u IPv4 117999 0t0 TCP *:http (LISTEN)

  7. [root@gitlab ~]# lsof -i:8080
  8. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  9. bundle 40358 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
  10. bundle 40650 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
  11. bundle 40652 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
设置注册Gitlab用户时发送邮件确认

拉到最下面,点保存,再退出来,在登陆界面,注册一个新的帐号,会向你的注册时的邮箱发送一封确认的邮件

阅读(2970) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~