Ubuntu搭建Gitlab服务器
想到Gitlab就必定会想到SVN,因为两者都是代码管理系统,作为开发人员来说,用习惯了SVN的图形化界面和SVN代码更新和提交的方式,
可能就会觉得使用git会比较麻烦,其实不然git使用起来非常方便,并且好处也不少,git后面会成为一种流行和趋势。所以在这儿简单的介绍Gitlab
服务器的搭建和git的一些基本操作使用。

Git的优点和缺点介绍
优点
1、适合分布式开发,强调个体
2、公共服务器压力和数据量都不会太大
3、速度快、灵活
4、任意两个开发者之间可以很容易的解决冲突
5、离线可以正常提交代码和工作
缺点
1、学习周期相对而言比较长
2、不符合常规思维
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
准备环境
Ubuntu16.04 server
安装介绍
主要记录在Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录,以下是操作步骤(主要参考资料:https://about.gitlab.com/downloads/#ubuntu1604)
Gitlab安装
1.安装依赖包
sudo apt-get install curl openssh-server ca-certificates postfix
注:执行完成后,出现邮件配置,选择Internet那一项(不带Smarthost的)
2.利用清华大学的镜像(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)来进行主程序的安装
首先信任 GitLab 的 GPG 公钥
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
使用root用户修改配置文件
vi /etc/apt/sources.list.d/gitlab-ce.list
#添加以下内容
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
vi /etc/gitlab/gitlab.rb
external_url 'http://172.16.81.91/'
安装 gitlab-ce
sudo apt-get update
sudo apt-get install gitlab-ce
3.启动sshd和postfix服务
service sshd start
service postfix start
4.添加防火墙规则
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
5.启动各项服务
sudo gitlab-ctl reconfigure
6..检查GitLab是否安装好并且已经正确运行
sudo gitlab-ctl status
#如果得到类似下面的结果,则说明GitLab运行正常
7.浏览web页面并设置密码
http://172.16.81.91/
8.创建组
9.添加ssh key
git仓库之间的代码传输协议主要使用ssh协议。而一般搭建gitlab的时候使用的git用户是没有密码的,因此直接ssh是不能登录的,就需要使用ssh-keygen上传公钥,使用非对称加密传输。下面讲述如何上传你的ssh公钥:
生成sshkey
在终端中敲下面的命令,第一步会生成一对私钥和公钥,分别存在
~/.ssh/id_rsa和~/.ssh/id_rsa.pub中。第二步查看公钥字符串。ssh-keygen -t rsa -C "邮箱地址"
cat ~/.ssh/id_rsa.pub在面板上依次点击Profile Settings –> SSH Keys –> Add SSH Keys。然后把上一步中的
id_rsa.pub中的内容拷贝出来粘贴到输入框中,保存。
完成上面两步之后就成功的添加了sshkey了,然后就可以上传代码了。
10.创建项目
创建项目Test_Project
下一步,选择组,输入项目名
下一步,创建完成
在项目下面会有git的操作指南教你如何操作
完成创建项目!
至此,基于Ubuntu 16.04 x64操作系统的GitLab服务器搭建工作就完成了!
后续继续分享git的基本使用!
Ubuntu搭建Gitlab服务器的更多相关文章
- ubuntu搭建svn服务器并htpp访问版本库并svn与web同步
Ubuntu搭建SVN服务器多版本库 1 介绍 Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可 ...
- Ubuntu搭建Anki服务器
Ubuntu搭建Anki服务器 第一步安装Anki 阿里云的服务器,xshell远程登录上 #以root用户进行操作 #安装Akni服务 easy_install AnkiServer #添加名为an ...
- Centos7使用docker搭建gitlab服务器
了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...
- Ubuntu搭建NFS服务器,NFS协议详细分析
目录 1. Ubuntu搭建NFS服务器 2. NFS协议分析 2.1 实验拓扑: 2.2 在kali抓包分析 1. Ubuntu搭建NFS服务器 NFS(Network FileSystem,网 ...
- 搭建GitLab服务器
前言 每一个开发工作者无非身处2中开发环境:1.开源环境 2.闭源开发环境,若你身处闭源环境或对自己代码安全性要求较高,搭建和使用自己GitLab服务器是必不可少的环节. 可以通过各种方式搭建自己的 ...
- Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程
Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程 看了好多人的博客,有的不全 or 有问题,整理了一下,适合小白 新手先整理几个小问题 1.为啥使用 Linux 搭建服务器? ...
- Ubuntu 搭建 LAMP 服务器
/******************************************************************** * Ubuntu 搭建 LAMP 服务器 * 说明: * 想 ...
- CentOS7 搭建gitlab服务器
本文介绍如何在CentOS7.2上搭建Gitlab服务器,并简单介绍如何使用. Preface 使用的是CentOS7.2的操作系统,安装当前最新版Gitlab服务器,下载地址:清华大学开源软件镜像站 ...
- Git版本控制之ubuntu搭建Git服务器
Git是一个开源的分布式版本控制系统,可以有效.高效的处理从很小到非常大的项目版本管理.使得开发者可以通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,也可以将代码提交到Git服务 ...
随机推荐
- scala写算法-List、Stream、以及剑指Offer里部分题目基于scala解法
Stream(immutable) Stream是惰性列表.实现细节涉及到lazy懒惰求值.传名参数等等技术(具体细节详见维基百科-求值策略). Stream和List是scala中严格求值和非严格求 ...
- lodash源码分析之Hash缓存
在那小小的梦的暖阁,我为你收藏起整个季节的烟雨. --洛夫<灵河> 本文为读 lodash 源码的第四篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbo ...
- ES6 let和const命令(3)
const 用来声明常量.一旦声明,就不能改变. const在声明必须初始化,只声明不赋值会出错 const的作用域与let一样,只在声明的块级作用域有效. const命令声明的常量也不提升,同样存在 ...
- 快速恢复开发环境(系统还原后的思考,附上eclipse注释的xml配置文件)
1.Eclipse/Myeclipse的工作空间,不能放在系统盘 除非你的项目都有实时的云同步或SVN等,才能放在系统固态盘,不然你享受快速启动项目的同时,也需要承担系统奔溃后找不回项目的风险: 公司 ...
- R语言命令行参数
批量画图任务中,需要在R中传入若干参数,之前对做法是在perl中每一个任务建立一个Rscript,这种方式超级不cool,在群里学习到R的@ARGV调用方式,差不多能够达到批量任务的要求: a ...
- spring boot RESTFul API拦截 以及Filter和interceptor 、Aspect区别
今天学习一下RESTFul api拦截 大概有三种方式 一.通过Filter这个大家很熟悉了吧,这是java规范的一个过滤器,他会拦截请求.在springboot中一般有两种配置方式. 这种过滤器拦截 ...
- SpringMVC RequestMapping注解
1.@RequestMapping 除了修饰方法,还可以修饰类 2.类定义处:提供初步的请求映射信息.相对于WEB应用的根目录 方法处:提供进一步细分映射信息 相对于类定义处的URL.若类定义处未 ...
- 【HTTP协议】
一.简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议 ...
- mysql启动日志文件log_bin
今天正在无所事事的时候,突然收到需要我打开mysql的log_bin,当时我就懵逼了...不多说别的,我连这个log_bin在哪里,怎么知道是否启动了都不知道,怎么去做? 在万分纠结下,查询了很多资料 ...
- 关于css那些常用却有点记不住的属性
虽然说css样式都比较简单,但是某些单词每次都用到还是没记住怎么拼写,都要百度一番,干脆就汇总一下自己经常忘记的这些,也好方便查找. 单行文本溢出: { overflow: hidden; text- ...







