git hook分支_编写一个git post-receive hook来处理特定的分支

来自@pauljz的答案适用于某些git钩子,如pre-push,但pre-commit无法访问这些变量oldrev newrev refname

所以我创建了这个替代版本,适用于预提交,或者真正和钩子。这是一个pre-commit挂钩,如果我们不在master分支上,它将运行husky脚本。

#!/bin/bash

# git 'commit' does not have access to these variables: oldrev newrev refname

# So get the branch name off the head

branchPath=$(git symbolic-ref -q HEAD) # Something like refs/heads/myBranchName

branch=${branchPath##*/} # Get text behind the last / of the branch path

echo "Head: $branchPath";

echo "Current Branch: $branch";

if [ "master" != "$branch" ]; then

# If we're NOT on the Master branch, then Do something

# Original Pre-push script from husky 0.14.3

command_exists () {

command -v "$1" >/dev/null 2>&1

}

has_hook_script () {

[ -f package.json ] && cat package.json | grep -q "\"$1\"[[:space:]]*:"

}

cd "frontend" # change to your project directory, if .git is a level higher

# Check if precommit script is defined, skip if not

has_hook_script precommit || exit 0

# Node standard installation

export PATH="$PATH:/c/Program Files/nodejs"

# Check that npm exists

command_exists npm || {

echo >&2 "husky > can't find npm in PATH, skipping precommit script in package.json"

exit 0

}

# Export Git hook params

export GIT_PARAMS="$*"

# Run npm script

echo "husky > npm run -s precommit (node `node -v`)"

echo

npm run -s precommit || {

echo

echo "husky > pre-commit hook failed (add --no-verify to bypass)"

exit 1

}

fi我希望能有所帮助。您可以轻松修改if和fi语句之间的任何需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

★ Flex を使って Scalable Vector Graphics とビットマップを描画する

from: http://www.ibm.com/developerworks/jp/web/library/wa-svgbitmap/Flex を使って Scalable Vector Graphics とビットマップを描画するSandeep Malik, Tech Lead, IBM 概要: SVG (Scalable Vector Graphics) はグラフィックスの領域で最も重要な技術の 1 つで…

g5420 win7集显驱动_台式机装WIN7?雷我已经趟完了

注:本文只用于PC爱好者交流测试,文中所有测试版系统均只用于测试,不得用于个人或商业用途。Windows全面更新至win10版本后,改装Win7系统逐渐变得越来越艰难。厂商BIOS中逐渐舍弃了原始界面改为图形化,传统Legacy模式无…

实例解析linux内核I2C体系结构(2)

作者:刘洪涛,华清远见嵌入式学院讲师。 四、在内核里写i2c设备驱动的两种方式 前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种…

制作完整的java可执行文件

帮教务处的老师做了一个小软件,所以学习了一下制作java可执行文件,在此分享一下。 说明:因为是做完很长一段时间后再截的图,可能有点纰漏,大体应该没什么问题。 我的eclipse工程文件目录: bin | images(放图…

I2C设备驱动编写,struct i2c_device_id,struct i2c_driver,i2c_add_driver,i2c_register_board_info

我的理念:简单实用即可,不要搞一堆源码出来,结果让人看了以后还不知道怎么用,看我的: 1、在arch/arm/mach-xxx/ 自己的平台文件里添加i2c信息,美其名曰:i2c_board_info 例如: stat…

ajax中async_小猿圈web前端之ajax的同步和异步有怎样的区别?

对于ajax我们应该知道ajax是主要用来在前端页面中向服务器后端请求数据,ajax中根据async的值不同分为同步(async false)和异步(async true)两种执行方式,那么,ajax的同步和异步请求两种方式有…

[恢]hdu 2012

2011-12-12 05:27:32 地址:http://acm.hdu.edu.cn/showproblem.php?pid2012 题意:中文题。 mark:wa了一次,超2的。自己以为聪明地写了一个预处理,结果忘记把表达式写进去了,IsPrme的参数直接写了个i&#…

m_pMainWnd = dlg错误解决方法

这两天在写MFC程序的时候经常碰到这种情况,开始真的很让我速手无策呀。在网上的我看到有两种可以解决这种问题的方法:一是,直接把这句话注释掉,然后你再运行也就可以通过了。还有一种就是,你重新‘全部重建‘&#xff…

mysql存储引擎的区别_Mysql的两种存储引擎以及区别

一、Mysql的两种存储引擎1、MyISAM:①不支持事务,但是整个操作是原子性的(事务具备四种特性:原子性、一致性、隔离性、持久性)②不支持外键,支持表锁,每次所住的是整张表MyISAM的表锁有读锁和写锁(两个锁都是表级别)&a…

带给你灵感的3D街画艺术设计

3D街头艺术画已在16世纪以来意大利文艺复兴时期的Madonnari画家创造了令人惊叹的壁画来装饰豪华别墅的内墙。3D艺术也可以跟踪它的航线,。这里有一些新的图像,这将使你想知道它是如何可能的使东西是如此逼真,3D设计们不要错过 1。 &#xff0…

[vc]如何对radio按钮分组

如何使用多组?多组和一组是一样的使用,只要搞清楚哪个是哪一组的就行了。再为对话框添加Radio3和Radio4。很简单,先为这些RadioButton排个顺序,就是排列他们的TABORDER。在对话框资源面板上CtrlD,然后按你自己的理想顺…

[原]2011年度生活三层总结

一年了。 想到自己从开始没有目标,误打误撞的来到了提高班到现在的成长。我是多么的幸运,幸运的来到廊坊师范(现在都要称之为母校了),幸运的来到了提高班,遇到了米老师,在此感谢。 一年了。改变…

jdbc存储过程mysql_JDBC对MySQL数据库存储过程的调用

1、什么是存储过程存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集。存储过程经编译存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。2、与一般SQL语…

vi快捷键

u 撤销你刚才做的动作 ctrlr 恢复你刚才撤销的动作 复制粘贴 1. 将光标移动到将要复制的行处,按yy进行复制当前行(按nyy复制n行),再移动到粘贴位置,按p进行粘贴。 2. 将光标移到复制的…

【转】:andriod 开发环境工具下载地址(2)

http://www.cnblogs.com/oudi/archive/2011/06/30/2094674.htmlandriod 开发环境工具下载地址注意内容1. jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html2.eclipse:http://www.eclipse.org/downloads/ 3.andrioid sdk 下载地址:http://developer.and…

hp laser103 属性没有配置项_哦?在hp打印机面板上就可以更改打印机ip地址

修改打印机IP的方法有很多但都没有直接从打印机控制面板上修改方便过瘾虽然有些机器不支持但是惠普大部分机器还是可以的今天我们就以 LaserJet M227 系列打印机为例hp官方为大家介绍一下具体的设置方法步骤一:打印配置报告查看有效IP地址如果机器是2行控制面板 1.在…

vb连接odbc连接mysql数据库_vb6通过ODBC连接mysql数据库

在尝试连接数据库之前, 需要简单说明一下连接数据库的两种最常见的方式: 一种是通过建立 DSN 来连接, 这种比较麻烦, 程序移植性差; 我一般采取利用 ADODB 连接数据库的方式, 这种比较灵活方便, 不需额外工作, 方便程序移植.下面的例子就是通过 ADODB 连接 MySQL 数据库:首先, …

ABS_MT_TOUCH_MAJOR和ABS_MT_WIDTH_MAJOR

通常的多点触摸周期可以描述为:ABS_MT_*|SYN_MT_REPORT|ABS_MT_*|SYN_MT_REPORT|SYN_REPORT有些ABS_MT事件是必须实现的,如ABS_MT_POSITION_X和ABS_MT_POSITION_Y.而某些事件,如ABS_MT_TOUCH_MAJOR和ABS_MT_WIDTH_MAJOR是否需要实现则取决于具…

Java 笔记

1 词语 JRE —— Java运行时环境(Java Runtime Environment) JVM —— Java虚拟机 JDT —— Java的开发环境,可以方便的对代码进行开发及调试功能 SDK —— 软件开发工具包(Software Development Kit) IDE —— 集成开…

Windows修改注册表按键映射

Scancode Map 注册表项来实现键盘按键映射。 位于注册表的: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ 下新建一个二进制值项: "Scancode Map" 这个项目可实现对键盘按键的映射。这里映射的意思可理解为“替换”…