2

我使用husky​​git-branch-is作为 git 钩子。在我的 package.json 下面

{
"scripts": {
    "test": "jest",
     ...
},
"husky": {
  "hooks": {
    "pre-commit": "git-branch-is master && npm test",
    "pre-push": "git-branch-is master && npm test"
 }
}

使用从分支功能/802提交的此选项,我重新筛选以下错误

Error: Current branch is "feature/802", not "master". 

问题

  1. 如何禁用以“功能”开头的分支的 git 钩子
  2. 仅对masterdevelopment分支应用钩子。
  3. 这可以在不使用 bash 脚本的情况下实现吗?
4

3 回答 3

3

这对我有用。git-branch-is没有必要。

{
  "hooks": {
    "commit-msg": "if [[ $(git rev-parse --abbrev-ref HEAD) = develop ]]; then commitlint -E HUSKY_GIT_PARAMS; fi"
  }
}
于 2019-09-27T17:48:29.743 回答
2

使用if [ git-branch-is master]; then npm test; fi. 然后,git-branch-is master返回失败(非零)退出值的测试将不会被视为钩子的终端失败。

如果钩子需要在符合 POSIX 的 shell 之外运行,这可能会引发问题。

于 2019-01-03T19:15:17.530 回答
0

我检查分支是否不是主分支或分支是主分支并且测试是否成功。

"pre-push": "git-branch-is -r \"^((?!master).)*$\" || (git-branch-is master && npm test)"
于 2019-08-21T08:40:54.687 回答