git 服务器搭建及提交代码检查

本地 git 服务,通常都会选择 gitlab。本人最先也是选择 gitlab,在 centos7 上按照官网的步骤进行安装,下载的速度难以忍受,无奈放弃。最终选择在 docker 中安装 gogs 镜像来自建 git 服务。

一、安装 gogs

1、拉取镜像

docker pull gogs/gogs

2、创建数据目录

mkdir -p /var/gogs

3、创建窗口并运行

docker run -d --name=git-gogs -p 10022:22 -p 13000:3000 -v /var/gogs:/data gogs/gogs

4、配置 gogs

浏览器输入 url : http://ip:13000

...

二、提交代码检查

提交代码检查主要是利用 git hooks 来运行脚本,对代码进行提交前的检查,如果检查不通过,则禁止提交。

本交使用的是客户端钩子,工程是用 vue-cli 创建的。

1、安装 pre-git

yarn add [email protected]3.17.0 --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 内容如下:?

 1 const fs = require(‘fs‘)
 2 const path = require(‘path‘)
 3 const config = require(‘../config‘)
 4 ?
 5 // 彩色输出错误信息
 6 // 开始时使用 chalk
 7 // windows 下无效
 8 // 有更好的方法欢迎留言
 9 function ConsoleLog () {}
10 ConsoleLog.prototype.white = function (info) {
11     console.log(‘\x1B[37m‘, info)
12 }
13 ConsoleLog.prototype.green = function (info) {
14     console.log(‘\x1B[32m‘, info)
15 }
16 ConsoleLog.prototype.red = function (info) {
17     console.log(‘\x1B[31m‘, info)
18 }
19 ?
20 const consoleLog = new ConsoleLog()
21 ?
22 // 检查 eslint 是否打开
23 if (!config.dev.useEslint) {
24     consoleLog.green(‘###########################‘)
25     consoleLog.red(‘ERROR: ‘ + ‘Set config.dev.useEslint = true.‘)
26     consoleLog.red(‘请设置 config.dev.useEslint = true.‘)
27     consoleLog.white(‘\n‘)
28     process.exit(1)
29 } else {
30     readDirSync(path.join(__dirname, ‘../src‘))
31 }
32 ?
33 // 检查文件头是否含有注释
34 function checkComments (file) {
35     const extname = path.extname(file)
36     if (extname === ‘.vue‘ || extname === ‘.js‘) {
37         const lines = fs.readFileSync(file).toString().replace(/(^\s*)|(\s*$)/g, ‘‘)
38         if (lines.startsWith(‘<!--‘) || lines.startsWith(‘/*‘)) {
39 ?
40         } else {
41             consoleLog.green(‘###########################‘)
42             consoleLog.red(‘ERROR: ‘ + ‘Add file header comments.‘)
43             consoleLog.red(‘请添加文件头部注释.‘)
44             consoleLog.white(‘\n‘)
45             process.exit(1)
46         }
47     }
48 }
49 // 遍历文件夹
50 function readDirSync (path) {
51     let pa = fs.readdirSync(path)
52     pa.forEach(function (ele) {
53         let info = fs.statSync(path + ‘/‘ + ele)
54         if (info.isDirectory()) {
55             readDirSync(path + ‘/‘ + ele)
56         } else {
57             checkComments(path + ‘/‘ + ele)
58         }
59     })
60 }

三、测试下

git add .
git commit -m "test"

至些,一个简单的提交代码检查脚本就完成了。

原文地址:https://www.cnblogs.com/lifefriend/p/10246459.html

时间: 2024-11-08 21:14:38

git 服务器搭建及提交代码检查的相关文章

git服务器搭建post-receive 钩子部署服务端代码

一.git服务器搭建(服务器用户:root) 安装git $ apt-get install git 创建git用户 $ adduser git$ passwd git //修改git用户密码 创建git仓库 $ cd /home$ mkdir git$ mkdir ./git/.ssh$ touch./git/.ssh/authorized_keys$ cd /home/git$ git init --bare test.git //初始化仓库$ chown -R git:git ../git

CentOS 6.5下Git服务器搭建

1 关于版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.有以下三种版本控制系统: 1. 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的好处就是简单.不过坏处也不少:有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复. 为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异.图示如下, 2. 集中化的版本控制系统 集中

Ubuntu中Git服务器搭建

git服务器搭建过程 参考网上资料搭建git服务器过程记录 如下: 需求 硬件需求:一台Ubuntu或者debian电脑(虚拟机),能通过网络访问到. 软件需求:git-core, gitosis, openssh-server, openssh-client, Apache2(Gitweb) 安装配置git服务器 安装git和openssh: [email protected]:~$sudo apt-get install git-core openssh-server openssh-cli

Windows下Git服务器搭建[转]

Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh,软件版本如下,这两个版本的安装也是非常简单,基本只要注意一点即可:安装目录最好不要用默认路径,确保安装路径中没有空格.其他步骤基本一路Next即可. Git-1.8.1.2-preview20130201.exe Copssh_4.1.0_Installer.exe

git服务器搭建全程

原作者腾讯实验室 为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 [[email protected]_95_113_centos ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 安装编译工具 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 下载 git 选一个目录,用来放下载

CentOS 6.5 GIT 服务器搭建

CentOS git 服务器搭建 1. 环境部署 系统环境: 服务器端:CentOS 6.5  ip: 192.168.0.74 2. 安装 2.1 服务器端: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel vi /etc/yum.repos.d/epel.repo ------------------------------------------------------

git知识总结-4.git服务器搭建及迁移git仓库

1. 前言 因为手里有一份代码之前是直接从其它git服务器上克隆下来的,现在想自己搭建一个git服务器把这份代码管起来. 2. 搭建git服务器 1.安装git: $ sudo apt-get install git 2. 创建一个git用户,用来运行git服务: $ sudo adduser book 3. 创建证书登录 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/book/.ssh/authorized_keys文件里,一行一个. 此处可

GIT服务器搭建及配置详解

用久了SVN,突然换了项目组,新的项目要求使用GIT,还有点点生疏,于是不得不重新翻看以前的学习笔记,在复习的过程中想到自己也已经工作两年了,也该学会总结和思考,便诞生了开始有计划的写微博的想法,想把自己无论是在工作实践中学到的还是书本学习到的以及学习的方法分享出来,写得好让大家也有所收获,写得不好就当"博"大家一乐. 这是我在51CTO的第一篇微博,今天主要分享:GIT服务器搭建及配置. 一.安装环境 操作系统:CentOS 6.4 二.检测是否已安装GIT git --versio

《转》Windows平台下Git服务器搭建

该文章转自:http://www.codeceo.com/article/windows-git-server.html Windows平台下Git服务器搭建 第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” => ”高级系统设置” => ”高级” => “环境变量” => “系统变量”. 新建: 变量名:JAVA_HOME 变量值:D