1.git客户端编译安装

同步系统时间服务器

ntpdate cn.ntp.org.cn

安装依赖包:

[root@baolin ~]# yum install epel-release -y
[root@baolin ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y

编译安装高版本git

wget https://github.com/git/git/archive/v2.7.4.zip
unzip v2.7.4.zip
cd git-2.7.4/
make prefix=/usr/local/git all
make prefix=/usr/local/git install
rm -fr /usr/bin/git
ln -s /usr/local/git/bin/git /usr/bin/git
git --version

在commit后可以对当次提交做一个tag版本

[root@baolin git_test]# git tag -a v1.0 -m "注释内容"
[root@baolin git_test]# git tag
v1.0 # -d 删除指定标签
[root@baolin git_test]# git tag -d v1.0
Deleted tag 'v1.0' (was 07032f1)

把本地版本tag推送到线上

[root@baolin git_test]# git push origin --tags

删除本地版本tag -d

[root@baolin git_test]# git tag -d v1.0
Deleted tag 'v1.0' (was 13db2c6)

推送的空的同名版本到线上,达到删除线上版本的目标:

[root@baolin git_test]# git push origin :refs/tags/v1.0

通过tag获取指定版本的代码

[root@baolin git_test]# git fetch origin tag v1.0

2.安装gitlab版本厂库

1.安装依赖关系

[root@baolin git_test]# yum install curl policycoreutils openssh-server openssh-clients policycoreutils-python -y
[root@baolin git_test]# systemctl enable sshd
[root@baolin git_test]# systemctl start sshd [root@baolin git_test]# systemctl enable postfix
[root@baolin git_test]# systemctl start postfix

2.下载安装

地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

[root@baolin git_test]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.6.6-ce.0.el7.x86_64.rpm
[root@baolin git_test]# rpm -ivh gitlab-ce-10.6.6-ce.0.el7.x86_64.rpm

3.修改配置文件并启动

[root@baolin git_test]# vim /etc/gitlab/gitlab.rb
#external_url 'http://gitlab.example.com'
# 访问地址,如果用域名访问,此处应该使用域名地址
external_url 'http://192.8.21.100' # 自动化组件安装(并启动)
[root@baolin git_test]# gitlab-ctl reconfigure # 组件日志所在目录
[root@baolin gitlab]# pwd
/var/log/gitlab

4.Gitlab常用管理命令

# 查看 各组件状态
gitlab-ctl status
# 启动
gitlab-ctl start
# 关闭
gitlab-ctl stop
# 重启
gitlab-ctl restart
# 查看nginx 日志
gitlab-ctl tail nginx
# 备份命令
gitlab-rake gitlab:backup:create

5.Gitlab 常用组件

- nginx:静态Web服务器
- gitlab-shell:用于处理Git命令和修改authorized keys列表
- gitlab-workhorse:轻量级的反向代理服务器
- logrotate:日志文件管理工具
- postgresql:数据库
- redis:缓存数据库
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:GitLab Rails 应用是托管在这个服务器上的

6.目录结构

- /var/opt/gitlab/git-data/repositories/   :库默认存储目录
- /opt/gitlab :应用代码和相应的依赖程序
- gitlab-ctl reconfigure : 命令编译后的应用数据和配置文件,不需要认为的修改配置
- /etc/gitlab :配置文件目录
- /var/log/gitlab :此目录下存放了gitlab各个组件产生的日志
- /var/opt/gitlab/backups :备份文件生成的目录

变更主配置文件

- gitlab-ctl reconfigure    重置配置文件
- gitlab-ctl show-config 验证配置文件
- gitlab-ctl restart 重启gitlab服务
- gitlab-rails console 进入控制台

3.页面配置gitlab组权限

  • 登录Gitlab 用户root
  • 创建 Groups 组
  • 创建 Users 用户
  • 创建 Projects 项目
  • 将用 user 户加入到 projects 中,并设置权限
  • 添加用户 key 用于免秘钥 下载代码
  • Deploy key 只能下载代码不能上传代码,一般给Jenkins使用

4.gitlab的备份与恢复【全量包括用户关系】

修改后需要:gitlab-ctl reconfigure 更新配置 并 执行 gitlab-ctl restart 重启服务



1.配置备份路径

# 需要有git 用户权限
[root@baolin app1]# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

2.配置备份保存时间

# 默认保存时间 7 天,此处为 30天
gitlab_rails['backup_keep_time'] = 2592000

3.备份当前现有gitlab数据

[root@baolin app1]# gitlab-rake gitlab:backup:create

# 查看备份数据
[root@baolin app1]# ll -sh /var/opt/gitlab/backups
80K -rw------- 1 git git 80K Jun 6 16:38 1528274316_2018_06_06_10.6.6_gitlab_backup.tar

4.添加备份的计划任务

0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

5.恢复数据

# 关闭 unicorn 和 sidekiq 服务
[root@baolin app1]# gitlab-ctl stop unicorn
[root@baolin app1]# gitlab-ctl stop sidekiq # 切换至 备份文件所在目录
[root@baolin backups]# cd /var/opt/gitlab/backups
[root@baolin backups]# pwd
/var/opt/gitlab/backups # 执行恢复文件 文件名为 "时间戳加时间段" 名称
[root@baolin backups]# gitlab-rake gitlab:backup:restore BACKUP=1528274316_2018_06_06_10.6.6 # 重启服务 【30秒等待】
[root@baolin backups]# gitlab-ctl restart

6.只备份版本库

# 版本库路径
[root@baolin repositories]# pwd
/var/opt/gitlab/git-data/repositories # 手动打包代码库
[root@baolin repositories]# ls
java
[root@baolin repositories]# tar zcf /data/git_bak.tar.gz ./

邮件配置

1.参考邮件配置:

https://docs.gitlab.com.cn/omnibus/settings/smtp.html#qq-exmail

2.邮件验证:gitlab-rails console

#配置完成后可以用Rails控制台验证邮件是否能发送成功。 在GitLab服务器上,执行 gitlab-rails console 进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:

irb(main):003:0> Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
# 示例
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

5.性能监控

查看当前数据任务

http://192.8.21.100/admin/background_jobs

Github版本管理以及git使用的更多相关文章

  1. linux系统下使用流行的版本管理工具 Git

    前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...

  2. Studio之版本管理工具Git (图文教程)

    目前业界主流的版本管理工具主要是 svn/git.svn是1种集中式的代码管理工具,而git是1种散布式的代码管理工具,广受极客的爱好.而基于git的github更是全宇宙码农的提高逼格,深究技术的必 ...

  3. 版本管理工具Git(1)带你认识git

    简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...

  4. 版本管理工具Git(2)git的安装及使用

    下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...

  5. 版本管理工具Git(一)简要介绍

    版本管理工具不但可以备份而且还能记录版本,也就是同一个东西不同时期的状态同时可以跟踪追溯.版本管理工具由CVS.SVN.Git.GitHub. 最早的版本管理工具CVS,因为多人开发项目导致工作很难协 ...

  6. 版本管理工具Git(2)git的使用

    上一篇带大家认识了Git,在本篇中将讲解Git的安装及使用: Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用 ...

  7. 版本管理工具Git(3)VS2013下如何使用git

    Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用git VS下创建项目 vs中新建项目MyGitTest201 ...

  8. 码农的好助手:版本管理工具git的使用

    一.什么是github? GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 2008 年 4 月 10 日 ...

  9. git学习笔记04-将本地仓库添加到GitHub远程仓库-git比svn先进的地方

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步. 如果没有,打开Shel ...

随机推荐

  1. 使用服务器参数文件(SPFILE)管理初始化参数

    传统上,Oracle数据库的初始化参数存储在文本初始化参数文件中.为了更好的可管理性,您可以选择在二进制服务器参数文件中维护初始化参数,该文件在数据库启动和关闭期间保持不变.本节介绍服务器参数文件,并 ...

  2. c++从文件路径获取目录

    场景 c++从文件路径获取目录 实现代码 初始化是不正确的,因为需要转义反斜杠: string filename = "C:\\MyDirectory\\MyFile.bat"; ...

  3. mac安装adb

    安装 brew cask install android-platform-tools 测试 adb devices

  4. 设计模式C++学习笔记之五(Factory Method工厂方法模式)

      工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中.核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的 ...

  5. 使用命令行解析php文件

    使用命令行解析php文件,这样可以调用Log4PHP库中的一些demo,因为默认的输出使用命令行作为输出. 建一个bat文件: echo 以下是使用命令行解析php文件 C:\xampp\php\ph ...

  6. 判断鼠标进入容器的方向小Demo

    参考资料: 贤心博客:http://sentsin.com/web/112.html, Math.atan2(y,x) 解释 :http://www.w3school.com.cn/jsref/jsr ...

  7. 004_zookeeper运维之maxClientCnxns overflow

    一. 线上默认设置:maxClientCnxns=120   #可通过修改这个值来进行解决 二. 在10.103.110.51这个ip上执行以下命令,进行查看连接情况 [root@10.103.101 ...

  8. WAV文件有多大?MP3文件有多大?使用Lame 压缩比是多少?

    一.说明: 录音文件大小多少?用什么存比较合?我有500G的硬盘存录音能存多久?...... 这些东西常用常忘,索性一次性就分析清楚记下来,方便以后查阅,如果能帮到大家那就更好了. 二.计算方法:   ...

  9. maven:手动安装JAR到本地仓库

    mvn install:install-file -DgroupId=com.test -DartifactId=test -Dversion=1.0.0 -Dpackaging=jar -Dfile ...

  10. android中的LaunchMode详解----四种加载模式

    Activity有四种加载模式: standard singleTop singleTask singleInstance 配置加载模式的位置在AndroidManifest.xml文件中activi ...