Gitlab(1)- 简单介绍
什么是 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 简单工作流程
- 创建并克隆项目
- 创建项目某 Feature 分支
- 编写代码并提交至该分支
- 推送该项目分支到远程 Gitlab 服务器
- 进行代码检查并提交 Master 主分支合并申请
- 项目主管审查代码并确认合并申请
Gitlab(1)- 简单介绍的更多相关文章
- Docker的简单介绍及使用
Docker介绍 Docker是Docker.Inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源. Doc ...
- git 客户端连接gitlab 实现简单的CI/CD
1. git 客户端的安装 下载: https://git-scm.com/download/win 截至最近:20180728最新版本 2.18的下载地址 https://github-produc ...
- [Docker]学习笔记--简单介绍
学习docker已经有一段时间了,一直没有静下心来好好总结一下. 最近用docker搭了一整套Gitlab的持续集成环境.(会在下一篇中详细的讲解具体步骤,敬请期待) 感觉是时候写点东西和大家一起分享 ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- angular1.x的简单介绍(二)
首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
随机推荐
- springboot 中 inputStream 神秘消失之谜
序言 最近小明接手了前同事的代码,意料之外.情理之中的遇到了坑. 为了避免掉入同一个坑两次,小明决定把这个坑记下来,并在坑前立一个大牌子,避免其他小伙伴掉进去. HTTPClient 模拟调用 为了把 ...
- K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
更多精彩内容请关注微信公众号:新猿技术生态圈 更多精彩内容请关注微信公众号:新猿技术生态圈 更多精彩内容请关注微信公众号:新猿技术生态圈 Endpoints 命名空间级资源,如果endpoints和s ...
- 三层交换机和VLAN
目录 一.VLAN的概述及优势 二.VLAN的种类 三.静态VLAN的配置 四.Trunk介绍与配置 五.三层交换机转发原理 一.VLAN的概述及优势 分割广播域 物理分割 逻辑分割 VLAN的优势: ...
- JUC学习笔记(二)
JUC学习笔记(一)https://www.cnblogs.com/lm66/p/15118407.html 1.Lock接口 1.1.Synchronized 1.1.1.Synchronized关 ...
- 被字节跳动、小米、美团面试官问的AndroidFramework难倒了? 这里有23道面试真题,助力成为offer收割机!
目录 1.Android中多进程通信的方式有哪些?a.进程通信你用过哪些?原理是什么?(字节跳动.小米)2.描述下Binder机制原理?(东方头条)3.Binder线程池的工作过程是什么样?(东方头条 ...
- MobSF移动安全扫描平台本地化部署与简单汉化
在之前的文章MobSF移动安全扫描平台环境搭建与试用中,我们用docker进行了搭建,那么我们如何在本地直接搭建呢,其实也是很简单的. 本地化部署 我们在本地安装 其实是很简单的,里面有两个文件,在不 ...
- Linux线程简单介绍
1.进程与线程 2.使用线程的理由 3.有关线程操作的函数 4.线程之间的互斥 5.线程之间的同步 6.试题最终代码 1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构 ...
- Send Excerpts from Jenkins Console Output as Email Contents
Sometimes we need to send some excerpts from Jenkins console output (job logs) as email, such as tes ...
- Linux应用程序安装方法
一.linux应用程序基础 1.1.应用程序与系统命令的关系 1.2.典型应用程序的目录结构 1.3.常见的软件包封装类型 二.RPM包管理工具 2.1.RPM软件包管理器Red-Hat Packag ...
- SWAP的罪与罚&&NUMA的取舍
说个案例:一台Apache服务器,由于其MaxClients参数设置过大,并且恰好又碰到访问量激增,结果内存被耗光,从而引发SWAP,进而负载攀升,最终导致宕机. 正所谓:SWAP,性能之大事,死生之 ...