写于:2019-03-11 21:20:30

# Git

啥是GIt! Git 是一个分布式版本控制系统。说直白一点就是,GIt 是一个仓库系统,该系统提供了存放物品的场所,同时针对每一次出入库都有详细的记载,可以方便知道你之前在这里放了什么,并且根据要求,还能够还原之前仓库的存放状态。

其实在开发中也有其他的版本控制系统,比如常用的SVN。而SVN一样可以做到这些,但是为什么选择 GIt 而不是 SVN呢?

人为因素是其中一个原因,技术领导的技术选型,下层员工不得不使用。而另外一个比较重要的原因就是GIt对比SVN的优势:Git 这个仓库很人性化,它允许你把物品在你自己的本地小仓库先摆者,然后觉得可以了再提交到远程GIt仓库中,避免堆积太多东西难以管理。而SVN 不行,所有的东西都只能提交到远程仓库中,无论你本地堆积了多少东西,你都只能在远程仓库中摆放,不允许你有小私库。

Git 由于多了些优势,相对应的操作步骤也变多了。但是这些代价都是很值得。

下午我们来看看 Git 的操作流程图:

Git 操作流程图

这上面是一个简单git用法:拉取代码以及提交代码的流程图。 但是在实际操作过程中 git 实际上会更复杂,包括同一账号多库多分支, 操作有很多技巧,例如分支切换保留当前分支的开发环境等操作。很是灵活好用,相信使用上手之后,你会对 git 至死不渝。在这里不针对 git 的命令进行赘述。

了解了 git 之后,那我们尝试这搭建一下远程仓库。

# 最简版-Git服务搭建

前提:环境 centos ,安装有 git

最简版的 GIt 服务器其实就是个人的私服,主要通过创建 git 仓库,然后通过 linux内部用户权限机制进行权限控制,完成的一个简易的远程仓库。

而其实这种仓库也可以给企业用,比如我最早呆的一家创业公司,公司给到的服务器内存配置较小,并且服务器中东西比较多,比如 nexus 、jekines、nginx等很多,而 gitlab 因为底层依赖很多的东西占用较多内存,为了提高服务利用,加上开发人员较少,于是采用的这种方式进行仓库构建。

在早期的开发中,开仓库的形式还是能够满足的开发需求,不过针对于后期需要进行细化权限管理很难操作。

话不多说,直接进入正题

# step1、创建系统用户“simple_git” 用来管理 git 仓库。

useradd simple_user
passwd simple_git

# step2、创建一个文件夹用来存放simple_git 的git仓库

mkdir /simple_git

# step3、初始化一个 git 仓库 wtf_coding

git init --bare wtf_coding

# step4、设置 simple_git 的用户权限给 git 用户

chown -R simple_git:simple_git /simple_git/

# step5、设置 用户 simple_git 不能登录系统。

修改/etc/passwd 中 simple_git 对应的/bin/bash 为其他不存在的执行文件即可
tail -1 /etc/passwd
simple_git​ : x:​1003:1004::/home/simple_git:/bin/no-login

# step6、拉取代码测试

git clone git@192.168.2.154:/simple_git/wtf_coding.git

# Gitlab

对比上面的简易仓库,gitlab 的优势毋庸置疑,那就是可视化管理工具,权限管理,以及支持 kubernetes 容器编排等功能。但是缺点也很明显就是占内存,其运行时依赖 redis、nginx等多种服务。

# step1、下载

下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-11.8.1-ce.0.el6.x86_64.rpm

# step2、安装依赖

一般需要安装 openssh-server ,postfix,ruby 等依赖,其他具体的根据程序报错进行安装。

# step3、安装 gitlab

rpm -ivh gitlab-ce-11.8.1-ce.0.el6.x86_64.rpm

Gitlab 安装完成提示

# step4、修改相关配置

配置文件路径为: /etc/gitlab/gitlab.rb

一般修改如下配置
#外部访问url
external_url 'http://192.168.2.154:8080'
unicorn['port'] = 8080

# step5、重新载入配置,并启动

gitlab-ctl reconfigure 	# 重新载入配置
gitlab-ctl start		# 启动

# 在启动安装可能出现的问题

问题一:

在重新载入配置是,如果出现

ruby_block[wait for redis service socket] action run

等待加载 redis 的时候,先 ctrl +c 停止 然后运行:systemctl restart gitlab-runsvdir 之后在运行 gitlab-ctl reconfigure

问题二:502 错误

该错误需要修改 /etc/gitlab.rb 配置文件,重新设定 unicorn['port'] = 9091 端口配置 或者 nginx['listen_port'] = 82 配置, 然后 gitlab-ctl reconfigure 就能够解决 502 问题

# step6、测试使用

  • 首次进入,设置 超级管理员密码 Gitlab 首次进入
  • 尝试创建一用户 Gitlab 首次进入

更多详细操作

# GitLab 汉化操作

如果有汉化需求,提供汉化操作

GitLab汉化模块下载地址

首先需要注意的是 Gitlab 的版本需要和GitLab 的汉化版本一致。

## GitLab 版本查看,其中-/opt/gitlab 为gitLab 安装目录
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 

## 其中 /opt/gitlab-11-8-stable-zh 为 汉化模块解压文件目录
cat /opt/gitlab-11-8-stable-zh/VERSION

其实进行汉化操作很简单,就是吧汉化模块中的所有文件覆盖 gitlab 安装目录中的 /opt/gitlab/embedded/service/gitlab-rails/ 中。

所以步骤很简单:

## 备份配置数据 ,如果汉化失败,能够撤回数据,保证程序能够运行
tar -zcvf /opt/gitlab-rails.tar.gz /opt/gitlab/embedded/service/gitlab-rails/

## 复制文件覆盖 gitLab 
cp -rf /opt/gitlab-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

之后重新配置 gitlab

gitlab-ctl reconfigure

启动

gitlab-ctl start

汉化完成之后,想要看到结果需要进行用户登录设置,

Gitlab 汉化操作

Gitlab 汉化展示

精彩内容推送,请关注公众号!
最近更新时间: 3/26/2020, 12:10:15 PM