如何仅在推送到某个远程的某个分支时运行 husky pre-push hook?

问题描述

假设我正在使用多个遥控器:

$ 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"
  }
},

解决方法

那个钩子很可能会在每个分支上运行,所以你应该调用一个脚本来: