什么是 Gitlab

  • 一个开源分布式版本控制系统
  • 开发语言:Ruby
  • 功能:管理项目源代码、版本控制、代码复用与查找、权限管控

Git 家族成员

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

GitLab 和 GitHub 的不同

Github

  • Github 分布式在线代码代码托管仓库
  • 个人版本可以直接在线(Web)免费试用,企业版本收费且需要服务器安装

Gitlab

  • 分布式在线代码仓库托管软件
  • 分社区免费版和企业收费版,都需要服务器安装
  • 中小公司可以直接使用社区版来管理、保存公司项目代码,不需要使用 Github 直接将私密代码暴露在公网上

Gitlab 优势

  • 开源免费,适合中小型公司将代码放置在系统中,社区版目前提供的功能完全能满足中小型公司的日常使用,如果想升级为收费版也可以无缝对接
  • 差异化的版本管理,任何微小的变动都会被记录下来
  • 离线同步,不依赖网络通信,可以将本地的所有 Git 操作在有网络的时候同步到 Gitlab 仓库中
  • 强大分支管理功能,可以针对不同的环境、不同的业务逻辑创建独立的分支,然后进行并行独立的维护和更新
  • GUI 操作界面
  • 强大账户权限管理,不同账户的权限各不相同,不存在越权的情况
  • 集成度很高,能够集成绝大多数的开发工具,比如 JIRA
  • 支持内置 HA,保证在高并发下仍然可以高可用性,无需搭建第三方高可用服务,保证用户在 7*24 小时均能使用

Gitlab 主要服务构成

  • Nginx 静态 Web 服务器:proxy 代理,处理所有 HTTPS 静态访问请求
  • Gitlab-workhorse 轻量级的反向代理服务器:处理一些较大的文件上传下载,以及我们经常使用的 git push 命令行操作
  • Gitlab-shell:用户处理 Git 命令和修改 authorized keys 列表(ssh 公钥列表)
  • Logrotate:日志文件管理工具,负责Gitlab 日志切割、打包等操作
  • Postgresql:数据库,保存所有 Gitlab 数据信息
  • Redis:缓存服务器,缓存数据库信息

Gitlab 简单工作流程

  1. 创建并克隆项目
  2. 创建项目某 Feature 分支
  3. 编写代码并提交至该分支
  4. 推送该项目分支到远程 Gitlab 服务器
  5. 进行代码检查并提交 Master 主分支合并申请
  6. 项目主管审查代码并确认合并申请

Gitlab(1)- 简单介绍的更多相关文章

  1. Docker的简单介绍及使用

    Docker介绍 Docker是Docker.Inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源. Doc ...

  2. git 客户端连接gitlab 实现简单的CI/CD

    1. git 客户端的安装 下载: https://git-scm.com/download/win 截至最近:20180728最新版本 2.18的下载地址 https://github-produc ...

  3. [Docker]学习笔记--简单介绍

    学习docker已经有一段时间了,一直没有静下心来好好总结一下. 最近用docker搭了一整套Gitlab的持续集成环境.(会在下一篇中详细的讲解具体步骤,敬请期待) 感觉是时候写点东西和大家一起分享 ...

  4. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  5. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  6. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  7. yii2的权限管理系统RBAC简单介绍

    这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...

  8. angular1.x的简单介绍(二)

    首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...

  9. Linux的简单介绍和常用命令的介绍

    Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

  10. iOS-iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

随机推荐

  1. php 几个算法

    /** * 返回当前运行文件名 * @acces private * @return string */ private function run_filename() { $tmparr = exp ...

  2. ABC133简要题解

    A T or T TOT 模拟即可 B Good Distance \(O(n^2)\) 模拟. C Remainder Minimization 2019 把 \(r\) 变成 \(l+2019\) ...

  3. C++面向对象 1(类-封装)

    1 //类和对象 2 //C++ 面向对象 三大特性 : 封装 继承 多态 3 4 //设计一个圆类,求圆的周长 5 //圆周长 = 2*PI * 半径 6 7 #include <iostre ...

  4. badboy如何录制jmetet脚本

    网盘下载: https://pan.baidu.com/s/1mTOEeE47tmk29_wndID3iw 傻瓜式安装即可, 内附教程 1. 打开Badboy, 新建一个文件 2.  输入要录制的网址 ...

  5. 用Matlab求解微分方程

    用Matlab求解微分方程 解微分方程有两种解,一种是解析解,一种是数值解,这两种分别对应不同的解法 解析解 利用dsolve函数进行求解 syms x; s = dsolve('eq1,eq2,.. ...

  6. etcd学习(6)-etcd实现raft源码解读

    etcd中raft实现源码解读 前言 raft实现 看下etcd中的raftexample newRaftNode startRaft serveChannels 领导者选举 启动并初始化node节点 ...

  7. Java基础技术JVM面试【笔记】

    Java基础技术JVM面试[笔记] JVM JVM 对 java 类的使用总体上可以分为两部分:一是把静态的 class 文件加载到 JVM 内存,二是在 JVM 内存中进行 Java 类的生命周期管 ...

  8. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  9. NOIP 模拟 $26\; \rm 降雷皇$

    题解 \(by\;zj\varphi\) 用树状数组优化一下求最长上升子序列即可. 至于第二问,在求出答案后开 \(n\) 棵线段树,每颗维护当前最长上升子序列长度的方案数. Code #includ ...

  10. 旧手机改造成web服务器并实现内网穿透

    前几天由于gitee的审核引擎一通乱杀,使得gitee pages停止提供服务,心生更换服务器或者其他pages托管的想法,看了看价格感人的云服务器以及空空的钱包,这时,脑子有个奇怪的想法飘过,自己搞 ...