Gitlab+Git实现版本控制系统
Gitlab介绍
GitLab是一种类似github的服务,组织可以使用它来提供git存储库的内部管理。 它是一个自我托管的Git-repository管理系统,可以保持用户代码的私密性,并且可以轻松地部署代码的更改。总而言之git更像是一个工具,gitlab则是用来供git提交代码的一个私有仓库。
服务器端
一、运行环境的构建
服务器:最小化安装的centos7.4
gitlab:安装的是11.3.6版本
关闭防火墙,关闭selinux,系统80和8080端口不要占用
系统工具:
yum install vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion -y
yum install curl policycoreutils openssh-server openssh-clients postfix -y
二、安装gitlab
yum仓库安装:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 准备epel仓库
systemctl disable firewalld 关闭防火墙
sed -i '/SELINUX/s/enforcing/disabled/' /etc/sysconfig/selinux 关闭selinux
hostnamectl set-hostname xxx.com.cn 设置主机名(根据需求配置)
# 准备仓库:(注意这里指向的最新稳定版的,自己可根据需求下载)
vim /etc/yum.repos.d/gitlib.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
# 安装:
yum install gitlab-ce
rpm包安装:
# 清华大学镜像地址
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.3.6-ce.0.el7.x86_64.rpm
# 本地yum安装
yum localinstall gitlab-ce-11.3.6-ce.0.el7.x86_64.rpm
邮箱配置:
vim /etc/gitlab/gitlab.rb #在gitlab配置文件里添加如下配置,默认没有
下面用的是用的网易163邮箱:
external_url 'http://192.168.10.130' #gitlab服务器IP地址
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com" #邮件服务器地址
gitlab_rails['smtp_port'] = 25 #端口
gitlab_rails['smtp_user_name'] = "xxxxx@163.com" #自己的邮箱
gitlab_rails['smtp_password'] = "zhang123" #密码
gitlab_rails['smtp_domain'] = "163.com" #邮箱服务器域名
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "xxxxx@163.com" #自己的邮箱
user["git_user_email"] = "xxxxx@163.com" #自己的邮箱
如果用的是腾讯的企业邮箱:
external_url 'http://192.168.2.9'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxxx@ningmeng.com"
gitlab_rails['smtp_password'] = "Li950628"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "xxxxx@ningmeng.com"
user["git_user_email"] = "xxxxx@ningmeng.com"
gitlab-ctl reconfigure #每次修改配置都要重新执行此命令
启动命令
gitlab-ctl reconfigure #修改完配置文件要执行此操作
gitlab-ctl start #启动
gitlab-ctl stop #停止
gitlab-ctl restar #重启
当你完成以上操作后,就可以在浏览器直接输入gitlab服务器地址进入gitlab的图形界面啦,注意,刚进去会提示你修改密码,修改后就可以直接登录啦,用户名默认root。接下来用户信息的设置、添加项目、添加组、分配权限都可以在图形界面修改啦,很简单的就不在多说啦。
三、汉化gitlab
gitlab是一款很好用的代码管理工具,但它默认是英文版,对一些英文不太好的朋友来说确实很难受。不过不用担心,在最新版的gitlab中已经内置中文汉化包,可以在个人设置里选择中文,但是翻译的还不完整,有好多地方还是英文版,不过也有解决办法,接下来就带大家开始gitlab的汉化之旅。
1. 首先我们要获取中文包
在github上有两家优秀的汉化包组织xhang、larryli,其中larryli最新版是8.8,xhang最新是11.4,大家根据需求选择汉化包地址:xhang:只更新到8.8.5版本。larryli:延续Larry Li项目的8-8-zh中文版本进行更新,目前最新版本是11.4
2. 汉化步骤
# 查看当前gitlab的版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 克隆 GitLab.com 仓库
git clone https://gitlab.com/xhang/gitlab.git
# 如果是8.8之前的版本可以使用这个
git clone https://gitlab.com/larryli/gitlab.git
#注意:拉取过程可能会很慢,请耐心等待
打汉化补丁
以 9.2.6 版本为例(使用xhang的git仓库)
# 进入克隆仓库得到的gitlab目录
cd gitlab
# 查看tag版本,选择合适的汉化版本
git tag
# 对比不同,这里比较的是tag,v9.2.6为英文原版,v9.2.6-zh为汉化版本。diff结果是汉化补丁。
git diff v9.2.6 v9.2.6-zh > /tmp/9.2.6.diff
# 停止gitlab
gitlab-ctl stop
# 应用汉化补丁
cd /opt/gitlab/embedded/service/gitlab-rails
git apply /tmp/9.2.6.diff
# 启动gitlab
gitlab-ctl start
当做好以上步骤后再去访问gitlab页面就会出现信息的汉字,gitlab的汉化过程比较缓慢,当你确定都是按着以上步骤做的,访问却是502是请耐心等待一会如果10以上的版本用以上方法不可以的话,那就试试另外一种
# 生成好对比文件xxx.diff后
cd /opt/gitlab/embedded/service/gitlab-rails
# patch开放源代码软件安装补丁程序。让用户利用设置修补文件的方式,修改,更新原始文件。
yum install patch -y
# 导入文件
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 11.1.6.diff
# 一路回车 覆盖文件
# 启动
gitlab-ctl start
# 重新加载配置
gitlab-ctl reconfigure
通过以上两种方法应该就能解决汉化问题
客户端配置
Centos系统
# 安装git
yim install git
# Git 全局设置
git config --global user.name "root"
git config --global user.email "lining@51eshop.net"
# 创建新版本库
git clone http://192.168.2.9/eshop/my-one.git
cd my-one
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
# 已存在的文件夹或 Git 仓库
cd existing_folder
git init
git remote add origin http://192.168.2.9/eshop/my-one.git
git add .
git commit
git push -u origin master
# 这一些在gitlab中创建项目时都有提示
Windows系统
具体的就不多说啦,你们可以看下这篇文章
git配置安装
windows中git的客户端程序众多,可根据习惯自行选择
Gitlab邮件测试
# 开启测试客户端
# 确保method为smtp,错了就是配置写错了或者没被正确加载
gitlab-rails console production
irb(main):001:0> ActionMailer::Base.delivery_method
=> :smtp
# 确保配置是我们要的
irb(main):002:0> ActionMailer::Base.smtp_settings
=> {:address=>"localhost", :port=>25, :domain=>"localhost.localdomain", :user_name=>nil, :password=>nil, :authentication=>nil, :enable_starttls_auto=>true}
# 发送测试邮件,此时会打印详细错误
irb(main):003:0> Notify.test_email('收件地址','邮件标题', '邮件内容').deliver_now
---------------------
转载于:https://www.cnblogs.com/liyanyan665/p/11211014.html
Gitlab+Git实现版本控制系统相关推荐
- Git分布式版本控制系统(下)
Git分布式版本控制系统(下) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...
- Git分布式版本控制系统(上)
Git分布式版本控制系统(上) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...
- Git分布式版本控制系统
Git分布式版本控制系统 git remote -v 查看仓库 一 企业高效持续集成平台场景介绍: 二,GIT分布式版本控制系统: 2.1 Git简介: 2.1.1 git是什么? Git在Wikip ...
- Git 分布式版本控制系统使用教程
Git 专栏索引: Git 分布式版本控制系统使用教程 在 IDEA 中使用 Git 图文教程 Git 分布式版本操作系统使用教程 1. 版本控制系统简介 1.1 集中式版本控制系统 1.2 分布式版 ...
- Git 分布式版本控制系统
目录 文章目录 目录 Git 分布式版本控制系统 Git 的基本概念 Git 的仓库结构 Git 的核心对象 Git 的数据结构 Git Flow 参考文档 Git 分布式版本控制系统 Git 是一个 ...
- g4e基础篇#2 Git分布式版本控制系统的优势
1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 初始化Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git历史记录 起步 ...
- Git分布式版本控制系统简介和使用
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本 ...
- 22-07-14 西安 Git 分布式版本控制系统 、代码管理
Git是目前世界上最先进的分布式版本控制系统,Git可以做源代码管理 Git的诞生 Linus (Linus Torvalds 林纳斯.托瓦斯)是在BitKeeper停止向开源社区提供免费版本后开发了 ...
- 使用Git分布式版本控制系统
GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理 ...
最新文章
- java 网络编程简单聊天_网络编程之 TCP 实现简单聊天
- 【NLP】GloVe的Python实现
- Oracle查询转换之连接谓词推入
- C语言的叙述大小写字母e1相同,第1、2章C语言基础练习题
- php连接access带密码,phpadodb连接带密码access数据库实例,测试成功
- C# Winform用户体验整理【原】
- 利息高的网络贷款可以不还吗?
- Objective-C学习之旅(四)----内存管理2----retain点语法
- 137页Python学习笔记,全面总结看这一篇就够了
- 计算机组成原理实验:静态随机存储器实验
- 开放共享:网商银行的运营探索及技术支撑
- 苹果签名是什么?苹果签名的作用是什么?
- HANA 如何创建XS Job来完成定时任务
- AI一分钟 | 苹果9月13日凌晨召开发布会;林斌晒小米手机新品,“撞脸”荣耀Magic 2...
- 微信小程序网络请求异常怎么办_微信小程序网络超时的处理
- Uncaught TypeError: Cannot read property 'name' of null怎么处理
- EETI eGTouch Linux 驱动的安装与使用
- vue.js请求数据
- GDOUCTF2023 Writeup
- 利用ASP显示当前在线人数
热门文章
- 如何设置硬盘安装linux,linux用硬盘安装时所设置选项
- 前轮转向最大角度设计原来_转向不足是怎么回事?我们怎么去改变这种特性
- laravel框架连接Oracle,laravel5.8(十四)连接oracle数据库
- xtrabackup备份mysql_xtrabackup备份mysql
- 关于vhr项目部署所遇到的问题总结,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin
- ORA-01502: 索引或这类索引的分区处于不可用状态 [已解决]
- 简书粉丝列表老bug
- [转载] 丛林中的糖果小屋
- Starling GodRay 效果实现
- 图像语义分割python_图像语义分割出的json文件和原图,用plt绘制图像mask