问题描述
假设我正在使用多个遥控器:
$ git remote -v
origin https://github.com/ettie62/Quicke(fetch)
origin https://github.com/ettie62/Quicke(push)
public https://github.com/roslyn80/Quicke(fetch)
public https://github.com/roslyn80/Quicke(push)
每个遥控器都有多个分支:
$ git branch -a
* master
refactor
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/refactor
remotes/public/dev
remotes/public/master
如何仅在尝试推送到某个远程的某个分支时运行以下 pre-push 钩子,例如public/master
,但在按下 origin/master
时不要运行它:
"husky": {
"hooks": {
"pre-push": "CI=true npm test"
}
},
解决方法
那个钩子很可能会在每个分支上运行,所以你应该调用一个脚本来:
- 获取parameters from the pre-push hook,如husky issue 757
- 仅当第一个参数为
npm test
时才调用refs/head/public/master