Git成员

Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。

什么是Gitlab

Gitlab是利用Ruby on Rail开发的开源应用程序,实现一个自托管的Git项目仓库,可以通过web界面进行访问公开的或者私人项目。
GitLab拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库,它提供一个代码片段功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

Gitlab搭建

1、 使用gitlab的rpm包安装:gitlab-ce-11.9.9-ce.0.el7.x86_64.rpm

# yum install gitlab-ce-11.9.9-ce.0.el7.x86_64.rpm -y

2、修改配置文件

# vim /etc/gitlab/gitlab.rbexternal_url 'http://172.25.14.10' # gitlab地址

3、重载服务

# gitlab-ctl reconfigure

4、服务重载后查看gitlab组件

5、登陆gitlab: http://172.25.14.10
设置新密码:


新密码登陆


6、创建新的project

Project name–>>>private–>>>initialize–>>>Create project

安装git

# yum install git

6.2 将ssh公钥添加到gitlab


将公钥复制,点击Add key

添加完成后,进入myProject–>>clone,在本地生成同名目录,并且目录中会有所有的项目文件

在远程项目克隆到本地

# git clone git@172.25.14.10:root/myproject.git
[root@node1 ~]# cd myproject/
[root@node1 myproject]# ls
README.md
[root@node1 myproject]# cat README.md
# myProject

在本地项目中编辑内容,并将内容推送到Gitlab远程项目下

# git config --global user.name "sql"  #添加git用户信息
# git config --global user.email "1055@localhost"
# echo hello >  test
[root@node1 myproject]# ls
README.md  test
[root@node1 myproject]# cat test
hello

将test提交到版本库

[root@node1 myproject]# git add test
[root@node1 myproject]# git commit -m"test"
[master bd9685d] test1 file changed, 1 insertion(+)create mode 100644 test
[root@node1 myproject]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@172.25.14.10:root/myproject.git71e51e5..bd9685d  master -> master
Branch master set up to track remote branch master from origin.

Gitlab由下面服务组成
  • nginx: 静态web服务器在这里插入代码片
  • gitlab-shell: 用于处理Git命令和修改authorized keys列表
  • gitlab-workhorse: 轻量级的反向代理服务器,可以处理一些大的HTTP请求(磁盘上的 CSS、JS 文件、文件上传下载等),处理 Git Push/Pull 请求,处理到Rails 的连接会反向代理给后端的unicorn(修改由 Rails 发送的响应或发送给 Rails 的请求,管理 Rails 的长期 WebSocket 连接等)。
  • logrotate:日志文件管理工具
  • postgresql:repository 中的数据(元数据,issue,合并请求 merge request 等 , 可以登录 Web 的用户
  • redis:缓存每个客户端的sessions和后台队列,负责分发任务。Redis需求的存储空间很小,大约每个用户25KB
  • sidekiq:用于在后台执行队列任务(异步执行)
  • unicorn:Gitlab 自身的 Web 服务器(Ruby Web Server),包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作,配置参考:CPU核心数 + 1 = unicorn workers数量。
    1. 通过检查存储在 Redis 中的用户会话来检查权限
    2. 为 Sidekiq 制作任务
    3. 从仓库(warehouse)取东西或在那里移动东西
  • gitlab-shell:用于 SSH 交互,而不是 HTTP。gitlab-shell 通过 Redis 与 Sidekiq 进行通信,并直接或通过 TCP 间接访问 Unicorn。用于处理Git命令和修改authorized keys列表
  • Gitaly:后台服务,专门负责访问磁盘以高效处理 gitlab-shell 和 gitlab-workhorse 的git 操作,并缓存耗时操作。所有的 git 操作都通过 Gitaly 处理,并向 GitLab web 应用程序提供一个 API,以从 git(例如 title, branches, tags, other meta data)获取属性,并获取 blob(例如 diffs,commits,files)
  • Sidekiq:后台核心服务,可以从redis队列中提取作业并对其进行处理。后台作业允许GitLab通过将工作移至后台来提供更快的请求/响应周期。Sidekiq任务需要来自Redis
  • prometheus:提供监控
gitlab常用命令
  • 运维管理
  1. 查看版本
# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
  1. 检查gitlab
# gitlab-rake gitlab:check SANITIZE=true --trace
  1. 实时查看日志
# gitlab-ctl tail
  1. 数据库关系升级
# gitlab-rake db:migrate
  1. 清理redis缓存
# gitlab-rake cache:clear
  1. 升级gitlab-ce版本
# yum update gitlab-ce
  1. 升级postgreSQL最新版本
# gitlab-ctl pg-upgrade
日志
  1. 实时查看所有日志
# gitlab-ctl tail
  1. 实时查看redis日志
# gitlab-ctl  tail redis
  1. 实时查看postgresql日志
# gitlab-ctl  tail postgresql
  1. 实时查看gitlab-workhorse日志
# gitlab-ctl  tail gitlab-workhorse
  1. 实时查看logrotate日志
# gitlab-ctl  tail logrotate
  1. 实时查看nginx日志
# gitlab-ctl  tail nginx
  1. 实时查看sidekiq日志
# gitlab-ctl tail sidekiq
  1. 实时查看unicorn日志
# gitlab-ctl tail unicorn
Gitlab备份与恢复

gitlab备份的默认目录是/var/opt/gitlab/backups

  • 备份命令
# gitlab-rake gitlab:backup:create #该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分。
  • 自动备份
    通过任务计划crontab 实现自动备份
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create # 每天两点备份gitlab数据
  • 备份保留时间修改,编辑配置文件/etc/gitlab/gitlab.rb
# gitlab_rails['backup_keep_time'] = xxxxxx # 数值单位:秒

重新加载配置文件

# gitlab-ctl reconfigure
恢复

停止unicorn和sidekiq,保证数据库没有新的连接,没有写数据情况

# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
# gitlab-rake gitbab:backup:restore BACKUP=xxxxxx(恢复文件)
# gitlab-ctl start 启动gitlab

Gitlab搭建及常用命令相关推荐

  1. Hadoop生态圈-zookeeper本地搭建以及常用命令介绍

    Hadoop生态圈-zookeeper本地搭建以及常用命令介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zookeeper软件 下载地址:https://www.ap ...

  2. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作

    一.从SVN迁出到本地Git仓库(还没有配置Git仓库的,直接看第八条) git svn clone ""                ##注意路径需要双引号引起来 二.在远程仓 ...

  3. nginx 安装搭建及常用命令

    目录 1.  linux下安装nginx 2. 搭建静态网页 3. 搭建项目 4. nginx 负载均衡 5. nginx 负载均衡 查看请求被转发到哪台服务器 6. nginx支持websocket ...

  4. Maven环境搭建及常用命令、生命周期

    一.下载maven包,解压 二.配置环境变量,MAVEN_PATH=解压路径 添加到path中 三.测试  mvn -v 查看maven版本 四.设置本地仓库的路径 在conf文件夹下的setting ...

  5. 22-06-24 西安 linux(01) linux环境搭建、常用命令、vim编辑

    Linux系统引入 1.为什么学linux?       服务器本质是一台电脑,组成:硬件+操作系统(linux)+软件 2.linux使用场景 2.1.服务器的操作系统 服务器要求可用性高,即能够给 ...

  6. GITLAB服务常用命令

    GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. Github是公共的git仓库,而Gitlab适合于搭建企业内部私有g ...

  7. Git详细用法:Git概述 安装 常用命令 分支操作 团队协作 、GitHub、idea集成Git、idea集成GitHub、Gitee 码云、GitLab

    0 课程介绍 说明: 在公司想要使用idea集成git: 首选需要下载安装Git(查看第2章) 之后在中设置用户签名(查看3.1) 然后在idea中集成Git(查看第7章) - 0.1 学习目标 第1 ...

  8. Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)

    文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...

  9. android adb 环境,Android安卓环境搭建及ADB常用命令

    .md ## 1.下载sdk 下载链接:http://tools.android-studio.org/index.php/sdk ## 2.安装sdk 安装完成,安装目录见下图 安装 ## 3.环境 ...

最新文章

  1. Pairs Forming LCM LightOJ - 1236
  2. [NOI2009] 植物大战僵尸
  3. iOS之深入解析Block的底层原理
  4. HBase 在人工智能场景的使用
  5. 用 Python 写个坦克大战
  6. 项目中有出现过缓存击穿,简单说说怎么回事?
  7. 数据:Purpose以太坊ETF的持仓量达到4万枚ETH
  8. Hash碰撞的解决方案
  9. 【SpringMVC学习05】SpringMVC中的参数绑定总结——较乱后期准备加入 同一篇幅他人的参数绑定...
  10. 8.6 归纳式迁移学习
  11. 南方cass提取坐标生成表格_如何利用EXCEL随机生成测量点坐标导入南方CASS中计算土方量...
  12. C语言初学者如何制作一个完整的C语言程序——歌曲排行榜
  13. 10个有效的Linux VPS/服务器性能检测与稳定性测评工具/命令
  14. PS示例教程:如何用Photoshop打磨质感水晶风格图标
  15. windows使用Certbot配置nginx的https证书
  16. cf刷题记录- 5 1
  17. 巧用google实现快速搜索
  18. 提示未登录,点确认,跳到登陆页
  19. c++ 3D笔记整理
  20. 已安装过Mysql,再次安装最终一直显示未响应

热门文章

  1. 感觉编程还是需要逐渐熟练的技术工种吧,分几个维度来描述。
  2. 英语介绍计算机,计算机英语自我介绍
  3. DataWhale活动-二手车价格预测 task3
  4. leetcode题刷250天(84)——454. 四数相加 II(加法分配律)
  5. 四轴笔记----PSRAM存储器介绍
  6. 为什么美团股价大跌:疫情影响、阿里竞争与模式弊病
  7. JS实现键盘移动光标
  8. 锐龙R3 4100 性能怎么样 相当于什么水平
  9. arcgis html图像标记,图片标记
  10. 海岱物联星空社团成员在第六届电子竞技全国高校联赛山东省总决赛中获佳绩