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)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...
随机推荐
- 史上最详细mac安装Qt教程
史上最详细mac安装Qt教程,小白看过来! 这是一篇非常适合Qt入门小白的的安装Qt教程,因为这学期我们小组的一个关于高速救援的项目要用到Qt与web进行交互式展现相关的图像,由于没有MSVC这个插件 ...
- BaseRuntimeException自定义业务异常类实现
public class BaseRuntimeException extends RuntimeException { private final int code; public BaseRunt ...
- leetcode c++做题思路和题解(2)——链表的例题和总结
链表的例题和总结 0. 目录 环形链表 1. 环形链表 题目: https://leetcode-cn.com/problems/linked-list-cycle/ 看了别人的思路真是感概万千,思路 ...
- git如何清除远程 __pycahce__ 文件
第一步,清除已经存在的缓存文件 >> git rm -r -f --cached */__pycache__ rm 'common/__pycache__/__init__.cpython ...
- AJ学IOS(54)多线程网络之NSOperation重要知识
AJ分享,必须精品 一:队列的类型与队列添加任务 1: 主队列 [NSOperationQueue mainQueue] 添加到”主队列”中的操作,都会放到主线程中执行. 2:非主队列 [[NSOpe ...
- L6循环神经网络
循环神经网络 本节介绍循环神经网络,下图展示了如何基于循环神经网络实现语言模型.我们的目的是基于当前的输入与过去的输入序列,预测序列的下一个字符.循环神经网络引入一个隐藏变量HHH,用HtH_{t}H ...
- Redis入门使用 -- 个人总结
目录 什么是Redis? Redis 与其他 key - value 数据库的对比 Redis 能干什么 Redis的安装配置 Redis启动和连接 上面开启的是非守护线程下启动(独占模式),下面我们 ...
- awd平台搭建
1.先是使用 https://github.com/m0xiaoxi/AWD_CTF_Platform 这个平台搭建 这个平台很好用,是python脚本自动搭建,基本不需要怎么更改,自带了四道题的源码 ...
- prefetch 和 preload 及 webpack 的相关处理
使用预取和预加载是网站性能和用户体验提升的一个很好的途径,本文介绍了使用 prefetch 和 prefetch 进行预取和预加载的方法,并使用 webpack 进行实现 Link 的链接类型 < ...
- ubuntu安装Python3并与Python2自由切换
一.配置ssh链接安装openssh-server sudo apt-get install openssh-server 二.安装Python3及pip sudo apt-get install p ...