什么是 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. 字符串对象 API

    length--获取字符串的长度 charAt(n)--查找下标对应的字符串 indexOf(str)--查找某个字符首次出现的下标,找不到返回-1 lastIndexOf(str)--查找某个字符最 ...

  2. Ghost ,博客系统代名词

    Ghost 博客系统是前 WordPress 的一些优秀员工的创业项目.项目仍然采用 100% 开源,加上官方的收费托管的商业模式,目前已经发展成为一个非常的博客系统. 为了更好的方便读者理解 Gho ...

  3. 背单词(AC自动机+线段树+dp+dfs序)

    G. 背单词 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较   题目描述 给定一张包含N个单词的表,每个单词有个价值W.要求从中选出一个子序列使 ...

  4. 跟你说个笑话,硕士毕业两年,月薪10k,天天面向CV编程

    "枯燥乏味的一天,又tm要开始了". 早上10:00,程序员毛毛带着路上买的早餐,打开24英寸的显示屏,去某论坛查一下昨天没有解决的bug. 9 个小时增删改查.搬砖写代码的一天又 ...

  5. [论文阅读] LCC-NLM(局部颜色校正, 非线性mask)

    [论文阅读] LCC-NLM(局部颜色校正, 非线性mask) 文章: Local color correction using non-linear masking 1. 算法原理 如下图所示为, ...

  6. SpringMVC学习06(JSON)

    6.Json 6.1 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编程语言的文本 ...

  7. spring学习07(整合MyBatis)

    10.整合MyBatis 10.1 相关jar包 junit <dependency> <groupId>junit</groupId> <artifactI ...

  8. ETL需求要求

    前言 ETL落地dw层,dw层各表一般是由多个表关联取数得到的大宽表,在ETL需求中的dw设计应该考虑以下内容,目的是确保需求更清晰,开发和测试才能更高效的进行. 业务需求为基础 基于业务需求做足够多 ...

  9. Linux、Windows 下手动生成 sha256 等类型的校验文件

    目录 1 - 校验文件的作用 2 - Linux 下生成校验文件 3 - Windows 下生成校验文件 参考资料 版权声明 1 - 校验文件的作用 从网服务器下载文件,尤其是比较大的文件时,很容易由 ...

  10. SpringBoot JPA查询映射到自定义实体类

    和 SegmentFault上的文章(https://segmentfault.com/a/1190000021869465)一样, 都是俺账号 场景 举一个简单的栗子: 比如有一个User实体类 @ ...