git 服务器搭建及提交代码检查
本地 git 服务,通常都会选择 gitlab。本人最先也是选择 gitlab,在 centos7 上按照官网的步骤进行安装,下载的速度难以忍受,无奈放弃。最终选择在 docker 中安装 gogs 镜像来自建 git 服务。
一、安装 gogs
1、拉取镜像
docker pull gogs/gogs
2、创建数据目录
mkdir -p /var/gogs
3、创建窗口并运行
docker run --privileged=true -d --name=git-gogs -p : -p : -v /var/gogs:/data gogs/gogs
4、配置 gogs
浏览器输入 url : http://ip:13000
...

配置保存路径:
/var/gogs/gogs/conf/app.ini
二、提交代码检查
提交代码检查主要是利用 git hooks 来运行脚本,对代码进行提交前的检查,如果检查不通过,则禁止提交。
本交使用的是客户端钩子,工程是用 vue-cli 创建的。
1、安装 pre-git
yarn add pre-git@3.17. --dev
2、配置 pre-git
在 package.json 中插入下列代码
"scripts": {
"lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
"pre-check": "node verify/commit-check.js && npm run lint"
},
"config": {
"pre-git": {
"enabled": true,
"commit-msg": "simple",
"pre-commit": [
"npm run pre-check"
],
"pre-push": [],
"post-commit": [],
"post-checkout": [],
"post-merge": []
}
}
3、编写自定义代码检查脚本
在项目根目录下创建 verify/commit-check.js,此次检查主要实现:强制使用 eslint ,强制文件头部添加注释说明。commit-check.js 内容如下:
const fs = require('fs')
const path = require('path')
const config = require('../config')
// 彩色输出错误信息
// 开始时使用 chalk
// windows 下无效
// 有更好的方法欢迎留言
function ConsoleLog () {}
ConsoleLog.prototype.white = function (info) {
console.log('\x1B[37m', info)
}
ConsoleLog.prototype.green = function (info) {
console.log('\x1B[32m', info)
}
ConsoleLog.prototype.red = function (info) {
console.log('\x1B[31m', info)
}
const consoleLog = new ConsoleLog()
// 检查 eslint 是否打开
if (!config.dev.useEslint) {
consoleLog.green('###########################')
consoleLog.red('ERROR: ' + 'Set config.dev.useEslint = true.')
consoleLog.red('请设置 config.dev.useEslint = true.')
consoleLog.white('\n')
process.exit(1)
} else {
readDirSync(path.join(__dirname, '../src'))
}
// 检查文件头是否含有注释
function checkComments (file) {
const extname = path.extname(file)
if (extname === '.vue' || extname === '.js') {
const lines = fs.readFileSync(file).toString().replace(/(^\s*)|(\s*$)/g, '')
if (lines.startsWith('<!--') || lines.startsWith('/*')) {
} else {
consoleLog.green('###########################')
consoleLog.red('ERROR: ' + 'Add file header comments.')
consoleLog.red('请添加文件头部注释.')
consoleLog.white('\n')
process.exit(1)
}
}
}
// 遍历文件夹
function readDirSync (path) {
let pa = fs.readdirSync(path)
pa.forEach(function (ele) {
let info = fs.statSync(path + '/' + ele)
if (info.isDirectory()) {
readDirSync(path + '/' + ele)
} else {
checkComments(path + '/' + ele)
}
})
}
三、测试下
git add .
git commit -m "test"
至些,一个简单的提交代码检查脚本就完成了。
git 服务器搭建及提交代码检查的更多相关文章
- Git服务器搭建笔记
前言:最近公司要使用git服务器对Android4.4的源码进行版本控制,所以花了些时间在Ubuntu14.04上搭建了git服务器,正好前段时间也学习了下git的使用哈哈 ------------- ...
- Ubuntu中Git服务器搭建
git服务器搭建过程 参考网上资料搭建git服务器过程记录 如下: 需求 硬件需求:一台Ubuntu或者debian电脑(虚拟机),能通过网络访问到. 软件需求:git-core, gitosis, ...
- SVN服务器搭建之提交日志模版构建
SVN服务器搭建之提交日志模版构建 日志提交有两种 一种是自己客户端设置提交日志模版,这个只适用于自己,没办法强制性运用到项目中,只能依照每个人的自觉性来处理. 第二种方法是SVN服务器设置提交日志模 ...
- 基于阿里云服务器的git服务器搭建
使用阿里云Ubuntu 12.0.4 64位操作系统做git服务器. 首先git服务器有两种访问方式可以选择:http方式和ssh的方式,http方式更容易使用. 1.http方式的git服务器搭建以 ...
- Git系列(1) Windows下Git服务器搭建
作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh, ...
- Windows下Git服务器搭建[转]
Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...
- git知识总结-4.git服务器搭建及迁移git仓库
1. 前言 因为手里有一份代码之前是直接从其它git服务器上克隆下来的,现在想自己搭建一个git服务器把这份代码管起来. 2. 搭建git服务器 1.安装git: $ sudo apt-get ins ...
- ECS之Git服务器搭建
最简教程 ### . 安装Git 安装Git服务,命令如下: ```Shell $ yum install curl-devel expat-devel gettext-devel openssl-d ...
- git服务器搭建全程
为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 [root@VM_95_113_centos ~]# yum install curl-devel expat-devel gettext ...
随机推荐
- Cobbler安装CentOS7系统时报错 What do you want do now?
问题的根源: 在cobbler服务主机中执行了 createrepo --update /var/www/cobbler/ks_mirror/CentOS-7-x86_64/ 导致的. cobbl ...
- python note 04 list的应用及元组
1,昨日内容 ascii:字母,数字,特殊字符:1个字节,8位 Unicode:16位 两个字节 升级 32 位 四个字节 utf-8:最少一个字节 8位表示. 英文字母 8位 1个字节 欧洲16位, ...
- Linux系统minicom命令详解
minicom 功能说明:调制解调器通信程序 语 法:minicom [-8lmMostz][-a<on或0ff>][-c<on或off>][-C<取文件>][-d ...
- Android 面试问答
Android 面试问答 目录 数据结构和算法 java核心知识 Android核心知识 架构 设计相关问题 相关工具和技术 Android 测试驱动开发 其他 数据结构和算法 ******关于此类问 ...
- unity3d 代码动态添加,修改BoxCollider2D
BoxCollider2D box = gameObject.AddComponent<BoxCollider2D>(); box.size = new Vector2(1.0f, 1.0 ...
- CentOS 7 查询yum安装的软件及路径
来源:CentOS 7 查询yum安装的软件及路径 先执行下面的命令,查看所有的已安装软件名称. rpm -qa 然后执行 rpm -ql 软件名称 就可以显示软件的安装路径. [root@loc ...
- dfs | Security Badges
Description You are in charge of the security for a large building, with n rooms and m doors between ...
- Python开发——函数【迭代器、生成器、三元表达式、列表解析】
递归和迭代 小明问路篇解释说明 递归:小明——>小红——>小于——>小东:小东——>小于——>小红——>小明 小明向小红问路,因小红不知道,所以向小于问路,因小于不 ...
- spring mvc+mybatis 构建 cms + 实现UC浏览器文章功能
最近公司在模拟UC浏览器做一个简单的cms系统,主要针对于企业内部的文章浏览需求,这边考虑用户大多用mobile浏览文章内容,故使用原生的ios和android进行开发,后面也会集成html5. 1. ...
- boost asio 学习(五) 错误处理
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio?pg=6 5. Erro ...