1.概述

  在写这篇博客之前,为了更好的描述整个流程,本人亲自尝试了:从搭建到使用,下面就围绕这个流程来阐述整个过程,目录结构如下所示:

  1. Git的安装搭建
  2. Git的常规操作
  3. Gitlab的搭建
  4. Gitlab的使用

  下面我们开始整个流程。

2.Git篇

  其实,作为开发人员,Git的使用是必备的技能,也许我们都很熟悉如何使用Git,对Git的常用命令也了如指掌;但是对Git服务器的搭建也许我们并不太在意,因为这些事情自从我们进入公司,运维人员就已经帮我们做好来,我们只需要知道如何去使用(拉去代码,提交代码)。但是如果有一天,你去来一家打算使用Git来作为代码管理器的公司,要求你来搭建这个代码管理平台,也许你会碰很多壁,下面给出我搭建的流程,也许能为您节省很多不必要的麻烦,保证您一次搭建成功。

2.1Git服务器搭建

环境准备:

  • 系统环境:CentOS 6.x
  • 软件版本:git-2.3.1.tar.gz
  • 下载地址:https://www.kernel.org/pub/software/scm/git/

编译Git版本:

  首先安装依赖(以下都是在root目录下完成):

  

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel 
tar -zxvf git-2.3.1.tar.gz
cd git-2.3.1
make prefix=/usr/local all
make prefix=/usr/local install #root用户运行

  注:编译时如果操作系统没有安装gcc,使用yum –y install gcc*

  另外,如果直接使用yum –y install git安装的版本比较旧(1.7.x),安装完成后输入git --version,会显示对应的版本号,若现实的版本号不对(之前操作系统存在git),可以先卸载之前的版本,然后做一个软链接,命令如下:

ln –s /usr/local/bin/git /usr/bin/

2.2创建Git用户

  下面创建Git用户,命令如下所示:

useradd git –d /home/git

2.3在Git用户下安装SSH

  在Git用户下安装SSH,命令如下所示:

ssh-keygen –t rsa

  然后一路回车即可。

2.4安装Gitolite

  这是一款Git服务管理工具,通过公钥对用户进行认证,并能够利用配置文件进行repo的精细授权管理。 输入以下命令:

git clone git://github.com/sitaramc/gitolite
mkdir -p ~/bin
gitolite/install -to ~/bin
gitolite setup -pk ~/.ssh/id_rsa.pub

  出现如下图所示,即表示成功。

2.5添加开发者

  由于手上机器有限,我将权限配置和Git 仓库配置在同一台机器上,在前面我们添加了Git用户下的公钥,下面在Git账户下直接输入如下命令:

git clone git@git.company.com: gitolite-admin.git

  注:这里的git.company.com在实际使用中可以换成公司域名或IP。

  如果在执行命令时,需要输入密码,说明前面某些配置出错了,需要重新查证解决后在继续。

  克隆完成后,会在gitolite-admin目录下出现两个子目录:conf和keydir。conf是gitolite的权限配置文件夹,keydir用于放置所有用户的公钥。所以,现在我们将guest.pub文件(开发者电脑生成的公钥)放入keydir目录中,然后编辑conf/gitolite.conf,在文件末尾添加新的repo和权限。下面我们添加一个repo为hdfs-etl,拥有读写权限。内容如下:

repo hdfs-etl
RW+ = guest

  注:R(读)W(写)

  修改完成后,我们提交更改,完成用户及其库的添加,命令如下:

git add conf
git add keydir
git commit –m “add repo diexun-etl,give access dengjie”
git push

2.6操作repo

  下面我在guest的主机上克隆hdfs-etl的工程,命令如下:

git clone git@git.company.com: hdfs-etl.git

  如果在网络正常的情况下克隆失败,说明公钥添加未成功;若克隆成功,则会出现hdfs-etl的目录。当然我们也可以查看一下操作的权限,命令如下:

ssh git@git.company.com info

  如下图所示:

  如图所示,我机上上拥有读和写的权限,与配置的权限一致。

2.7卸载

  任何地方使用ssh或git登录到git服务器需要输入密码,都说明配置git服务器出现错误,需要重新安装gitolite,重新安装前先清除之前的文件,清除命令如下所示:

ls -a | grep gitolite | xargs rm –fr
rm -fr ~/repositories ~/bin ~/projects.list ~/.ssh/authorized_keys

  到这里Git篇就赘述完成了,至于Git 的常用操作,我想作为开发人员,应该是了熟于心,这里我就不多赘述了。

3.Gitlab篇

  GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务,它集成了Github的可视化功能,方便开发人员协同工作,下面我就围绕Gitlab的搭建使用来展开描述。

3.1Gitlab搭建

环境准备:

  操作系统:CentOS 6.x

  Gitlab版本:7.8.1

  

  由于Gitlab官方给出的安装过程难以成功(尝试过很多次,各种出错,环境只是一种工具,不应该花费太多的时间在这上面)。下面给出一个集成安装工具包BitNami,关于BitNami的简介,这里不做赘述,可自行谷歌了解。

  bitnami-gitlab下载地址:https://downloads.bitnami.com/files/stacks/gitlab/7.8.1-0/bitnami-gitlab-7.8.1-0-linux-x64-installer.run

  下载完成后,我们开始安装流程,命令如下:

chmod u+x bitnami-gitlab-7.8.--linux-x64-installer.run
./bitnami-gitlab-7.8.1-0-linux-x64-installer.run

  注:机器内存至少1G,不然跑不起来。

  下面列出安装流程:

The installer detects that exists a 'git' user in the system. This installer will change the config                        
uration for this user. Do you want to continue the installation? [y/N]: y The installer detects that exists a 'gitlab_ci' user in the system. This installer will change the
configuration for this user. Do you want to continue the installation? [y/N]: y ----------------------------------------------------------------------------
Welcome to the Bitnami Gitlab Stack Setup Wizard. ----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want
to install. Click Next when you are ready to continue. GitLab : Y (Cannot be edited) GitLab CI [Y/n] :Y Is the selection above correct? [Y/n]: Y ----------------------------------------------------------------------------
Installation folder Please, choose a folder to install Bitnami Gitlab Stack Select a folder [/opt/gitlab-7.8.-]: ----------------------------------------------------------------------------
Create Admin account Bitnami Gitlab Stack admin user creation Email Address [user@example.com]: smartdengjie@gmail.com Login [user]: sa Password :********
Please confirm your password :********
----------------------------------------------------------------------------
Hostname that will be used to create internal URLs. If this value is incorrect,
you may be unable to access your Gitlab installation from other computers. It is
advisable to use a Domain instead of an IP address for compatibility with
different browsers. Domain [10.211.55.30]: Do you want to configure mail support? [y/N]: y ----------------------------------------------------------------------------
Configure SMTP Settings This is required so your application can send notifications via email. Default email provider: [] GMail
[] Custom
Please choose an option [] : ----------------------------------------------------------------------------
Configure SMTP Settings This data is stored in the application configuration files and may be visible to
others. For this reason, it is recommended that you do not use your personal
account credentials. Username []: sa Password :
Re-enter : ----------------------------------------------------------------------------
Setup is now ready to begin installing Bitnami Gitlab Stack on your computer. Do you want to continue? [Y/n]: y ----------------------------------------------------------------------------
Please wait while Setup installs Bitnami Gitlab Stack on your computer. Installing
% ______________ % ______________ %
#########################################

  到这里,Gitlab就安装完成了。

3.2启动服务

  命令如下:

/opt/gitlab-7.1.-/ctlscript.sh start #启动
/opt/gitlab-7.1.-/ctlscript.sh restart #重启
/opt/gitlab-7.1.-/ctlscript.sh stop #停止

4.Gitlab使用

  下面我们登录到Gitlab的可视化界面,截图如下:

  其实首次登录的时候,如果没有在配置文件中配置,是会有注册功能的,这里为了安全考虑,我以管理员的身份登录,然后在设置界面去掉了注册功能。

  下面演示Gitlab使用流程:

  • 创建项目:

  其中需要注意: 如果属于Group级的项目,也就是属于多人配合的项目,建议Namespace使用Group name,另外Visibility默认为Internal。我们先创建一个组,如图所示:

  这里我们添加组所属用户,如图所示:

  • 源仓库的构建

  我们接下来按照步骤来创建一个自己的项目:

  按照以上提示的步骤操作,我们即可以创建或者导入一个项目成功。

  到这里,Gitlab的搭建和项目创建就介绍完成了。

5.总结

  后面,等手上的资料整理完成后,我会在写一篇Gitlab的Pull Request工作流的介绍,这篇文章就分享到这里;如果有什么问题,可以加群讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

Git和Gitlab协同工作的更多相关文章

  1. win10下git与gitlab安装与文件上传

    目前了解到的版本管理工具有三种:gitlab  GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公   GitHub各种资源有很多,适合个人使用   码云是中文版 便于入门 ...

  2. 【Git】 GitLab简单使用

    本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ...

  3. 使用git和gitlab进行协同开发流程

    一.基本概念 1.仓库(Repository) ①源仓库(线上版本库) 在项目的开始,项目的发起者构建起一个项目的最原始的仓库,称为origin. 源仓库的有两个作用: 1.汇总参与该项目的各个开发者 ...

  4. git-svn — 让git和svn协同工作

     git-svn — 让git和svn协同工作 svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目.但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题.也就是说对于尚未或暂 ...

  5. Git与GitLab

    Git与GitLab 一.Git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个 ...

  6. Jenkins持续集成git、gitlab、sonarqube(7.0)、nexus,自动化部署实战,附安装包,严禁转载!!!

    导读 之前用的都是SVN,由于工作需要用到Git,求人不如求己,技多不压身,多学一项技能,未来就少求别人一次,系统的学一遍,自己搭建一整套环境,自动化部署(自动发版),代码质量检测等等(为啥不用doc ...

  7. docker中建立私有git服务器[gitlab]

    现在使用git的很普遍,在开发内部如何建立个git服务器,本文以gitlab为例,让你分分钟就可以搭好一个环境[docker的威力非同一般] 首先在docker.com找到gitlab的下载源和信息, ...

  8. git服务器gitlab之搭建和使用--灰常好的git服务器【转】

    转自:http://blog.csdn.net/zy416548283/article/details/38057925 git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来 ...

  9. git服务器gitlab之搭建和使用

    git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来稍微有些复杂,没有web页面,而gitlab则是类似于github的一个工具,github无法免费建立私有仓库,并且为了代 ...

随机推荐

  1. js基础学习笔记(六)

    事件(可以被 JavaScript 侦测到的行为) 主要事件表: 加载事件(onload) 事件会在页面加载完成后立即发生,同时执行被调用的程序. 卸载事件(onunload) 当用户退出页面时(页面 ...

  2. 在aliyun遇到一些问题

    1. 删除现有网站报错:“applicationhost.config 错误 无法写入配置文件” 解决办法:用管理员身份打开IIS. 2. IIS上部署MVC网站,打开后500错误:处理程序“Exte ...

  3. 第十四个目标 (fzu)

    http://acm.fzu.edu.cn/contest/problem.php?cid=151&sortid=8 Problem Description 目暮警官.妃英里.阿笠博士等人接连 ...

  4. Codeforces816B Karen and Coffee 2017-06-27 15:18 39人阅读 评论(0) 收藏

    B. Karen and Coffee time limit per test 2.5 seconds memory limit per test 512 megabytes input standa ...

  5. Linux 修改默认的 yum 源

    官方的yum源在国内访问效果不佳. 需要改为国内比较好的阿里的 yum源,因为每次装的时候都得百度,所以这里记录一下. 修改方式: 1)cd /etc/yum.repos.d/ 这个目录下普通用户可能 ...

  6. SRM477

    250pt: 题意:给定一块蜂巢状的N*M矩阵,每块六边形和周围6个六边形相邻,现在告诉你哪些是陆地,哪些是水,问水陆交界处的长度. 思路:直接模拟 code: #line 7 "Islan ...

  7. OmniThreadLibrary学习笔记

    http://blog.sina.com.cn/s/articlelist_1157240623_6_1.html 非常好的控件,仔细看

  8. css中“~”和“>”是什么意思

    p~ul选择器 p之后出现的所有ul. 两种元素必须拥有相同的父元素,但是 ul不必直接紧随 p. css中“>”是: css3特有的选择器,A>B 表示选择A元素的所有子B元素. 与A ...

  9. centos下配置nginx遇到的一些基本的坑

    作为一个用.net的渣渣,常年混迹在window平台下,对Linux啥都不懂.随着.net core开源.跨平台后,也开始学习下linux. 在Desktop/Webs下放了一个index.html的 ...

  10. Weekly Contest 133

    1030. Matrix Cells in Distance Order We are given a matrix with R rows and C columns has cells with ...