Gitlab常规操作
一、Git和SVN的区别
和SVN类似,Git是一个版本控制系统(Version Control System,VCS),不同的是SVN为集中式版本控制系统,为单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新,git为分布式版本控制系统,关于SVN和git的对比,可以通过下图进行说明(但最大的区别在于svn为集中式,git为分布式)
svn好比一个巨大的图书馆,当你要借一本书的时候,需要先从图书馆借出,回家之后自己改,改完之后还是返回给图书馆,而git的方式完全不同,所有的客户端都一个是完整的版本库,没有中央控制的概念,可以这样类比,git提供了一个虚拟的全量图书馆,所有人都有一个虚拟的图书馆,当你想看其中一本书的时候,从自己的虚拟图书馆里面检索出来即可,如果你修改了其中的内容,可以直接提交到自己的虚拟图书馆里面,也不会影响其他人的图书馆,当有其他人想要看你修改的一本书的时候,你只要将对应的一本书的URL发给对方即可。
二、Gitlab的搭建与使用
Gitlab可以用rpm包安装,也可以用yum安装。我们这里采用yum安装。
2.1 配置YUM源
# 配置yum源
# cd /etc/yum.repos.d/
# vim gitlab_ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
2.2 安装与配置
2.2.1 安装
# yum install gitlab-ce -y
2.2.2 配置
# 配置gitlab域名访问地址
# vim /etc/gitlab/gitlab.rb
改:external_url 'http://gitlab.example.com'
为:external_url 'http://172.16.2.220'
# 重新配置应用程序,修改了gitlab配置文件,都要执行这个命令
# gitlab-ctl reconfigure
# 查看gitlab状态
# gitlab-ctl status
2.2.3 使用
(1)、浏览器访问:http://172.16.2.220,设置密码
(2)、登录,用户名是root,密码是设置的密码
(3)、关闭注册功能
(4)、创建组
(5)、创建项目
(6)、创建用户
(7)、配置公钥,使用SSH拉取代码
# 生成公钥
# ssh-keygen
# 查看公钥
# cat ~/.ssh/id_rsa.pub
# 把公钥添加到项目里
三、Gitlab备份
使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份。
gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1481598919_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1481598919是备份创建的日期,此处以事务的形式进行gitlab的定时备份,创建定时脚本/iyunwen/bin/git_backup/git_backup.sh ,内容如下:
#!/bin/bash
cd /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:create
find /var/opt/gitlab/backups/ -type f -ctime +5 -exec rm -rf {} \;
加入事务:echo "30 03 * * * root run-parts /iyunwen/bin/git_backup/" >> /etc/crontab
每天3:30分定时备份gitlab版本数据
四、Gitlab的迁移及数据恢复
迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话)
但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的10.2.2版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为10.2.2在进行备份。
(1)、停止gitlab服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
(2)上传备份文件至/var/opt/gitlab/backups,此处的备份文件名称为:1534793618_gitlab_backup.tar
(3)、数据恢复
cd /var/opt/gitlab/backups
chmod 777 1534793618_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1534793618
五、Gitlab项目迁
旧地址:git.aaa.com,新地址:git.bbb.net
(1)、查看目前的gitlab地址
# git remote -v
origin git@git.aaa.com:360fang/360-fang.git (fetch)
origin git@git.aaa.com:360fang/360-fang.git (push)
(2)、在新的gitlab上新建fang项目,生成gitlab地址:git@git.bbb:360-fyd/fang.git
(3)、设置把本地gitlab地址替换成为新gitlab地址
# git remote set-url origin git@git.bbb.net:360-fyd/fang.git
# git remote -v
origin git@git.bbb.net:360-fyd/fang.git (fetch)
origin git@git.bbb.net:360-fyd/fang.git (push)
(4)、查看分支情况
# git branch -a
master
* v1.0.0
v1.1.1
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
remotes/origin/newtrust
remotes/origin/trust
remotes/origin/v1.0.0
remotes/origin/v1.0.1
remotes/origin/v1.1.1
(5)、把本地指定分支,推送到新的远程代码仓库
# git push origin master:master
(6)、把远程分支推送到远程
第一步:先checkout远程分支到本地
# git checkout -b develop origin/develop
第二步:在push本地分支到远程仓库
# git push origin develop:develop
Gitlab常规操作的更多相关文章
- FTP服务器常规操作
导读 FTP协议是Internet文件传输的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.下面就由我给大家简单介绍一下 ...
- Apache服务器常规操作
导读 Apache是世界上排名第一的Web服务器,50%以上的Web服务器都在使用Apache,它几乎可以在所有计算机平台上运行.下面就由我给大家说说Apache服务器的一些常规操作. Apache服 ...
- mysql服务器的常规操作
mysql服务器的常规操作 导读 MySQL是一个小型关系数据库管理系统,目前被广泛的应用在Internet上的中小型网站中,体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,使得许多中小型网站 ...
- 征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)
有日子没写博客了,真的是忙得要疯掉. 完成项目基础架构搭建工作,解决了核心技术问题,接着需要快速的调研下基于Spring框架下的Redis操作. 相关链接: 征服 Redis 征服 Redis + J ...
- Mongodb常规操作【一】
Mongodb是一种比较常见的NOSQL数据库,数据库排名第四,今天介绍一下Net Core 下,常规操作. 首先下C# 版的驱动程序 "MongoDB.Driver",相关依赖包 ...
- C#通过Ado.net对连接数据库并进行添加删除等常规操作的代码
如下资料是关于C#通过Ado.net对连接数据库并进行添加删除等常规操作的内容. static string sqlcon = "server=.;database=;Integrated ...
- react-native 常规操作
1. 关闭xcode打开模拟器的快捷键 , 等常规操作 https://www.jianshu.com/p/f6723f3406b7
- Linux 下的 netfilter 认识与常规操作
Linux 下的 netfilter 认识与常规操作 前言 博客写到今天,1年7个月.可是包含所有写作经历,这个时间线可以达到三年. 上次更新了一篇 "镇站之宝" ,也是本站阅读量 ...
- 数据库mysql的常规操作
1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...
随机推荐
- 多数据源系统接入mybatis-plus, 实现动态数据源、动态事务。
目录: 实现思想 导入依赖.配置说明 代码实现 问题总结 一.实现思想 接手一个旧系统,SpringBoot 使用的是纯粹的 mybatis ,既没有使用规范的代码生成器,也没有使用 JPA 或者 m ...
- bat中的特殊字符,以及需要在bat中当做字符如何处理
bat中的特殊字符,以及需要在bat中当做字符如何处理 (2014-02-27 21:16:55) 转载▼ 标签: bat 特殊字符 分类: develop bat中的特殊字符,以及需要在bat中当做 ...
- CentOS 配置OOM监控报警
由于程序设计不合理或者瞬间高并发访问时,很有可能会触发OOM(Out of memory),这里指的是操作系统级别的OOM.具体什么是OOM,以及怎样发生这里不在赘述,因为笔者认为这是IT从业工作者的 ...
- 如何用 Python 绘制玫瑰图等常见疫情图
新冠疫情已经持续好几个月了,目前,我国疫情已经基本控制住了,而欧美国家正处于爆发期,我们会看到很多网站都提供了多种疫情统计图,今天我们使用 Python 的 pyecharts 框架来绘制一些比较常见 ...
- 【Java】【常用类】 Arrays工具类 源码学习
虽然在数组的随笔中有说过,但实际上应该仔细深入一下源码进行分析 源码没有想象中的高大上,代码终究还是写给人看的,可读性大于执行性 最小阵列排序:1 乘 2的13次方 = 8192 学识浅薄,暂时还不 ...
- Nexus3 集成 crowd 插件
公司使用的软件开发和协作工具为 Atlassian 系列软件,所以统一使用 crowd 来实现统一登录(SSO). crowd 配置 具体操作细节见我之前写的 Atlassian 系列软件安装(Cro ...
- 抠脚大叔如何改变性别,Python实现变声器功能
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 乔柯 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...
- . Number throry
steve 学完了快速幂,现在会他快速的计算:(ij)%d , Alex 作为一个数学大师,给了 steve 一个问题:已知i∈[1,n],j∈[1,m] ,计算满足 (ij)%d=0 的 (i,j) ...
- B - How many integers can you find 杭电1976
Now you get a number N, and a M-integers set, you should find out how many integers which are small ...
- Linux下安装python3环境搭建
Linux下python3环境搭建 Linux安装软件有哪些方式? rpm软件包 手动安装 拒绝此方式 需要手动解决依赖关系 yum自动化安装 自动处理依赖关系 非常好用 源代码编译安装,可自定义的功 ...