代码版本管理 GitLab介绍

一、前言

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。

它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。

团队成员可以利用内置的简单聊天程序(Wall)进行交流。

它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

1、Git的家族成员

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

2、Gitlab的服务构成

  • Nginx:静态web服务器。
  • gitlab-shell:用于处理Git命令和修改authorized keys列表。
  • gitlab-workhorse:轻量级的反向代理服务器。
  • logrotate:日志文件管理工具。
  • postgresql:数据库。
  • redis:缓存数据库。
  • sidekiq:用于在后台执行队列任务(异步执行)。
  • unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
    版本管理 GitLab 的安装及管理 (CentOS 7)
    在这里插入图片描述

3、GitLab工作流程

版本管理 GitLab 的安装及管理 (CentOS 7)
在这里插入图片描述

4、GitLab Shell

GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表。

当通过SSH访问GitLab Server时,GitLab Shell会限制执行预定义好的Git命令(git push, git pull, git annex),调用GitLab Rails API 检查权限,执行pre-receive钩子(在GitLab企业版中叫做Git钩子),执行你请求的动作 处理GitLab的post-receive动作,处理自定义的post-receive动作。

当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码。如果你是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作;如果你是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:

调用GitLab Rails API
检查权限执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
执行你请求的动作
处理GitLab的post-receive动作
处理自定义的post-receive动作

5、GitLab Workhorse

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下查找是否安装了fcitx插件

方法 在命令行输入指令: dpkg -L fcitx-frontend-qt5 也可以查找是否有libfcitxplatforminputcontextplugin.so这个库文件,在命令行输入: dpkg -L fcix-frontend-qt5 | grep .so

国内首款全国产固态硬盘控制芯片发布

4月22日,国科微与龙芯中科战略合作签约暨国内首款全国产固态硬盘控制芯片发布仪式在北京人民大会堂举行。双方将建立长期稳定的业务合作伙伴关系,携手打造关键信息基础设施国产化生态。作为首个战略合作成果,国科微发布全新的GK2302系列芯片&…

gitlab访问错误Whoops, GitLab is taking too much time to respond

一、异常现象: gitlab访问错误Whoops, GitLab is taking too much time to respond 二、问题定位 问题定位8080端口被占用: 三、解决方案 解决方案01: 将占用的8080端口的进程杀死或者卸载占用8080端口的软件修改正在占用8080端口程序的…

使用gitlab初次上传代码

提要 项目开发中需要使用gitlab来管理代码,将自己开发的模块上传到gitlab,第一次使用这个代码管理仓库,记录一下。 方法 1.首先注册gitlab的账号。这个在百度上搜一下gitlab的官网,进去后首页就是注册及登陆页面,没有账号的先注…

云数据库精华问答 | 现有数据库优化到云环境有什么好处​?

云数据库可以实现按需付费、按需扩展、高可用性以及存储整合等优势。我们就看看看关于云数据库的精华问答吧。1:Q:什么是云数据库?A:云数据库是指被优化或部署到一个虚拟计算环境中的数据库,可以实现按需付费、按需扩展、高可用性…

上传更新的代码到gitlab

提要 项目开发中已经初次上传代码到gitlab上,那么后面在本地修改了代码之后怎么上传,本文作以说明。 方法 首先说明一点,若你本地代码要上传的代码在你之前创建的本地仓库之外,那么你需要将要上传的代码拷贝到本地仓库中&#…

Python基础教程学习目录 - Python入门教程

Python 基础入门 2021 年 1 月 23 日 下午 12:48 目录 一.Python 基础篇二.Python 线程/进程篇 一.Python 基础篇 Python 简介Python Pycharm Anacanda 区别Python2.x 和 Python3.x,如何选择?Python 配置环境Python Hello World 入门Python 代码注释…

linux tail命令_操作手册

tail :输出文件的最后几行。 用于linux查看日志的时候很方便,假如日志文件为:Console.log 用法: 1、输出文件最后10行的内容 tail Console.log2、-n为最后n行,输出文件最后n行的内容,同时监视文件的改变,…

华为2019年第一季度业绩曝光;联想and谷歌加入英特尔新晋云计划;即特斯拉起火,蔚来ES8也维修起了火...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 亚马逊仓库(图片…

怎么从gitlab上下载别人的代码

提要 当需要从gitlab上下载别人的代码时,这里简述一下如何操作。 方法 按如下的步骤来实现: 1.在自己的电脑脑上新建一个空文件夹,文件夹的名称自己取。 2.在新建的文件夹上右键,选择git bash here菜单,弹出一个命令…

Python 常用函数 - Python入门教程

Python 常用函数 2021 年 3 月 12 日 上午 11:18 [编辑] Python print 函数(一)Python print 函数(二)Python format 函数Python type 函数Python isinstance 函数Python zip 函数Python Chainmap 函数Python id 函数Python update 函数Python divmod 函数Python all 函数Pyt…

集群概述

一、什么是集群 1. 集群概念2.集群的特点3. 集群的两大能力4. 集群与分布式的区别 1. 集群概念 ①集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。②在某种意义上,他们可以被看作是一台计算机。集…

qt中combox怎么使其下拉菜单的长度变长

提要 项目开发中一些用户提出下拉菜单的滚动条需要滚好久,才能找到自己想要选择的项,需要将原本值显示10 个的下拉菜单现在加长先使的数目,从而使用户滚动变少。 实现 其实实现就使一个函数,设置combox的最大显示项的数目便可。…

在这座智慧岛上 看华为的坚定与“野心”

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!在ICT这个江湖里,不乏拼搏向上的企业,但是耐得住性子、扛得住诱惑&#xf…

gblfy博客配色模板

[toc]html空格符号 文章目录①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇<font color"#FF6666" size3>**关键字**<font>关键字 <font color"#006699" size3>**关键字**<font>关键字 <…

深入浅出Docker 镜像 | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作为云计算的当红明星Docker 来势汹汹,它就像一场森林大火&#xff0c;烧到了我们中间…

qt中调整弹出框的位置

提要 在程序中点击按钮&#xff0c;有时在边缘弹出的弹出框&#xff0c;不能全部展示在用户的面前&#xff0c;弹出框显示的位置会超过程序的边界&#xff0c;从而看不到完整的弹出框&#xff0c;这时可以菜取设置弹出框可以按下鼠标拖动来使其不被遮住&#xff0c;或者在弹出…

一分钟弄懂什么是分布式和微服务

微服务是架构设计方式&#xff0c;分布式是系统部署方式&#xff0c;两者概念不同 一、微服务 1、简单来说微服务就是很小的服务&#xff0c;小到一个服务只对应一个单一的功能&#xff0c;只做一件事。 2、这个服务可以单独部署运行&#xff0c;服务之间可以通过RPC来相互交互…

git status查看文件的状态

提要 通过git status查看文件的状态时&#xff0c;出现了一些如下的提示&#xff1a; jidfjDESKTOP-2DAKPIL MINGW64 /g/excise/zhushouProject/ZhuShou (master) $ git status On branch master Your branch is behind origin/master by 8 commits, and can be fast-forward…

Centos7 Docker镜像操作_入门试炼02

文章目录一、镜像操作常用命令二、镜像基础操作2.1. 删除所有镜像2.2. 列出镜像2.3. 搜索镜像2.4. 拉取镜像2.5. 查看所有镜像2.6. 镜像加速器2.7. 删除指定镜像2.8. 列出所有镜像ID2.9. 删除所有镜像一、镜像操作常用命令 说明命令列出docker下的所有镜像docker images列出所…