Git
啥是GIt!
Git 是一个分布式版本控制系统。说直白一点就是,GIt 是一个仓库系统,该系统提供了存放物品的场所,同时针对每一次出入库都有详细的记载,可以方便知道你之前在这里放了什么,并且根据要求,还能够还原之前仓库的存放状态。
其实在开发中也有其他的版本控制系统,比如常用的SVN。而SVN一样可以做到这些,但是为什么选择 GIt 而不是 SVN呢?
人为因素是其中一个原因,技术领导的技术选型,下层员工不得不使用。而另外一个比较重要的原因就是GIt对比SVN的优势:Git 这个仓库很人性化,它允许你把物品在你自己的本地小仓库先摆者,然后觉得可以了再提交到远程GIt仓库中,避免堆积太多东西难以管理。而SVN 中所有的东西都只能提交到远程仓库中,无论你本地堆积了多少东西,你都只能在远程仓库中摆放,不允许你有小私库。
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 对比上面的简易仓库优势显而易见。GItLab 提供了可视化管理工具,权限管理,以及支持 kubernetes 容器编排等功能。但是缺点也很明显就是占内存,其原因就是GitLab运行时依赖 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

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
在重新载入配置是,如果出现
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、测试使用
首次进入,设置 超级管理员密码

尝试创建用户

更多详细操作(https://docs.gitlab.com/ee/user/group/)
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
汉化完成之后,想要看到结果需要进行用户登录设置,



长按二维码关注,一起共同成长!





