如何防止使用 husky 直接提交到 master 分支?

Mon*_*ffy 7 git git-husky

我正在使用 husky 来运行 git hooks。

"husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
Run Code Online (Sandbox Code Playgroud)

我想防止直接提交到主分支。它应该允许仅通过合并请求更新主分支。

我从 Git 中发现了以下代码: Prevent commits in masterbranch。我将其复制到 .git/hooks/pre-commit 并且它有效

#!/bin/sh

branch="$(git rev-parse --abbrev-ref HEAD)"

if [ "$branch" = "master" ]; then
  echo "You can't commit directly to master branch"
  exit 1
fi
Run Code Online (Sandbox Code Playgroud)

但我想用哈士奇来实现这一点。我怎么做?

Geo*_*nos 13

我使用 OP 提供的内容创建了一个文件。

文件:钩子/预提交

#!/bin/sh

branch="$(git rev-parse --abbrev-ref HEAD)"

if [ "$branch" = "master" ]; then
  echo "You can't commit directly to master branch"
  exit 1
fi
Run Code Online (Sandbox Code Playgroud)

然后我在 package.json 中的 husky 预提交字段中添加了一个条目

  "husky": {
    "hooks": {
      "pre-commit": "sh hooks/pre-commit",
    }
Run Code Online (Sandbox Code Playgroud)

不再需要对 master 进行提交:)