首页 > 其他 > 详细

gitlab私有仓库介绍

时间:2020-09-21 22:38:43      阅读:90      评论:0      收藏:0      [点我收藏+]

1.什么是gitlab

1.Git是一种版本控制系统,是一种工具,用于代码的存储和版本控制。

2.GitHub是一个基于Git实现的在线代码仓库,是目前全球最大的代码托管平台,可以帮助程序员之间互相交流和学习。

3.GitLab是一个基于Git实现的在线代码仓库软件,你可以用GitLab自己搭建一个类似于GitHub一样的仓库,
但是GitLab有完善的管理界面和权限控制,一般用于在企业、学校等内部网络搭建Git私服。

4.GitHub和GiLlab两个都是基于Web的Git远程仓库,它们都提供了分享开源项目的平台,
为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。从代码的私有性上来看,GitLab 是一个更好的选择。
但是对于开源项目而言,GitHub依然是代码托管的首选。

2.上传包

# 安装包可参考清华源或阿里源下载:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
[root@git ~]# rz gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

# 官网:https://about.gitlab.com/

安装环境:
1、  CentOS 6或者7
2、  2G内存(实验)生产(至少4G)
3、  安装包:gitlab-ce-10.2.2-ce
4、  禁用防火墙,关闭selinux

3.安装包

#使用rpm安装,缺少依赖
[root@git ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm 
warning: gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
error: Failed dependencies:
	policycoreutils-python is needed by gitlab-ce-10.2.2-ce.0.el7.x86_64

#安装依赖
[root@git ~]# yum install -y policycoreutils-python

#再次安装
[root@git ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

4.配置gitlab

[root@git ~]# vim /etc/gitlab/gitlab.rb
external_url ‘http://10.0.0.80‘

5.重新生成

#修改配置文件以后重新生成
[root@git ~]# gitlab-ctl reconfigure


/var/opt/gitlab/	         # 配置文件
/etc/gitlab/gitlab.rb		 # 配置文件地址
/opt/gitlab/                    # gitlab的程序安装目录
/var/opt/gitlab                 # gitlab目录数据目录
/var/opt/gitlab/git-dfata       # 存放仓库数据
gitlab-ctl status               # 查看目前gitlab所有服务运维状态
gitlab-ctl stop                 # 停止gitlab服务
gitlab-ctl stop nginx           # 单独停止某个服务
gitlab-ctl tail                 # 查看所有服务的日志

6.gitlab组成

[root@git ~]# gitlab-ctl status
run: gitaly: (pid 9873) 137s; run: log: (pid 9529) 207s
run: gitlab-monitor: (pid 9889) 136s; run: log: (pid 9630) 195s
run: gitlab-workhorse: (pid 9862) 137s; run: log: (pid 9483) 221s       #轻量级的反向代理服务器
run: logrotate: (pid 9513) 213s; run: log: (pid 9512) 213s		#日志管理工具
run: nginx: (pid 9496) 219s; run: log: (pid 9495) 219s			#web服务,web页面
run: node-exporter: (pid 9581) 201s; run: log: (pid 9580) 201s	
run: postgres-exporter: (pid 9908) 135s; run: log: (pid 9725) 176s
run: postgresql: (pid 9263) 285s; run: log: (pid 9262) 285s		#数据库
run: prometheus: (pid 9897) 136s; run: log: (pid 9695) 182s		#监控
run: redis: (pid 9203) 291s; run: log: (pid 9202) 291s			#缓存
run: redis-exporter: (pid 9647) 188s; run: log: (pid 9646) 188s
run: sidekiq: (pid 9467) 227s; run: log: (pid 9466) 227s		#后台的任务队列(异步执行)
run: unicorn: (pid 9429) 233s; run: log: (pid 9428) 233s		#动态web服务

7.常用命令

#查看gitlab状态
[root@git ~]# gitlab-ctl status

#启动gitlab的服务
[root@git ~]# gitlab-ctl start nginx

#停止gitlab的服务
[root@git ~]# gitlab-ctl stop nginx

#查看服务日志
[root@git ~]# gitlab-ctl tail nginx

8.浏览器访问

技术分享图片

#访问 http://10.0.0.80
先修改默认密码:12345678

#登录
默认的用户名:root   密码:12345678

技术分享图片

二、gitlab使用

1.外观设置

在登录界面增加自定义图片及文字

技术分享图片

技术分享图片

2.关闭注册接口

默认登录界面可用户自行注册并实现登录,但在公司中需要禁止用户自行注册,注册功能需经审批流程通过放可。所以在此将登录界面中的注册功能对外关闭。

技术分享图片

技术分享图片

3.汉化版配置

1、下载汉化补丁 
git clone https://gitlab.com/xhang/gitlab.git

2、查看全部分支版本 
git branch -a

3、对比版本、生成补丁包 
git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > ../ 10.2.2-zh.diff

4、停止服务器 
gitlab-ctl stop

5、打补丁 
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff

6、启动和重新配置 
gitlab-ctl start gitlab-ctl reconfigure

4.添加用户组

技术分享图片
技术分享图片

技术分享图片

5.添加用户

技术分享图片
技术分享图片
技术分享图片
技术分享图片

6.把用户添加到用户组

技术分享图片
技术分享图片

7.创建项目

技术分享图片

技术分享图片

8.推送和拉取项目

1)移除github的仓库

[root@git git_data]# git remote remove origin
[root@git git_data]# git remote

2)添加gitlab的仓库

[root@git git_data]# git remote add origin git@10.0.0.80:dev/git_data.git
[root@git git_data]# git remote
origin

3)推送代码

#将公钥配置到gitlab仓库

技术分享图片

技术分享图片
技术分享图片

[root@git git_data]# git push -u origin master
Branch master set up to track remote branch master from origin.
Everything up-to-date

4)页面查看

技术分享图片

技术分享图片

5)克隆代码

[root@git git_data]# cd /tmp/
#克隆代码
[root@git tmp]# git clone git@10.0.0.80:dev/git_data.git
Cloning into ‘git_data‘...
remote: Counting objects: 31, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 31 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (31/31), done.
Resolving deltas: 100% (2/2), done.
#查看
[root@git tmp]# ll
total 0
drwx------ 2 git  git  20 Sep 22 01:00 gitaly-ruby831479196
drwxr-xr-x 3 root root 59 Sep 22 02:10 git_data

6)拉取代码

#创建仓库
[root@git opt]# mkdir git_data
[root@git opt]# cd git_data/

#初始化仓库
[root@git git_data]# git init
Initialized empty Git repository in /opt/git_data/.git/

#拉取代码
[root@git git_data]# git pull git@10.0.0.80:dev/git_data.git
remote: Counting objects: 31, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 31 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (31/31), done.
From 10.0.0.80:dev/git_data
 * branch            HEAD       -> FETCH_HEAD
 
#查看
[root@git git_data]# ll
total 8
-rw-r--r-- 1 root root  4 Sep 22 02:13 3
-rw-r--r-- 1 root root 12 Sep 22 02:13 master
-rw-r--r-- 1 root root  0 Sep 22 02:13 test_gihub

9.设置保护主分支

技术分享图片

测试dev分支推送代码则显示为拒绝,如果还是可以推送请查看配置保护分支选项
[root@web01 get_test]# git checkout master
[root@web01 get_test]# git merge dev
[root@web01 get_test]# git push -u origin master

返回master端测试推送,由于其他分支进行推送,和master端内容不一致,所以无法进行推送,使用git pull把代码拉取到本地,
或者git fetch 把代码拉取到本地仓库后进行合并(注意:git pull = git tetch+git merge)

10.gitlab备份

对gitlab进行备份将会创建一个包含所有库和附件的归档文件。对备份的恢复只能恢复到与备份时的gitlab相同的版本。将gitlab迁移到另一台服务器上的最佳方法就是通过备份和还原。
gitlab提供了一个简单的命令行来备份整个gitlab,并且能灵活的满足需求。
备份文件将保存在配置文件中定义的backup_path中,文件名为TIMESTAMP_gitlab_backup.tar,TIMESTAMP为备份时的时间戳。TIMESTAMP的格式为:EPOCH_YYYY_MM_DD_Gitlab-version。
如果自定义备份目录需要赋予git权限
配置文件中加入
gitlab_rails[‘backup_path‘] = ‘/data/backup/gitlab‘
gitlab_rails[‘backup_keep_time‘] = 604800       备份保留的时间(以秒为单位,这个是七天默认值),
mkdir /data/backup/gitlab
chown -R git.git /data/backup/gitlab
完成后执行gitlab-ctl reconfigure

gitlab私有仓库介绍

原文:https://www.cnblogs.com/tcy1/p/13708729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!