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

标签 git git-husky

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

"husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }

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

我从 Git: Prevent commits in master branch 中发现了以下代码.我将其复制到 .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

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

最佳答案

我用 OP 提供的内容创建了一个文件。
文件:钩子(Hook)/预提交

#!/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
然后我在 package.json 中的 husky pre-commit 字段中添加了一个条目
  "husky": {
    "hooks": {
      "pre-commit": "sh hooks/pre-commit",
    }
不再向大师提交:)

关于git - 如何防止使用 husky 直接提交到 master 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56987596/

相关文章:

xcode - 在大团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有什么优缺点?

git - 远程 url 环境变量

git - 在 git 中,悬挂提交和悬挂 blob 之间有什么区别?

git - 如何仅在子目录中运行 husky 预提交

eslint - 错误解析错误 : Unexpected character '#' in md file

git - 为什么我应该使用标签而不是 release/beta 分支来进行版本控制?

git - 显示远程分支的提交

git - 带有预提交的 Pylint 和带有 husky 的 EsLlint

husky - .husky/预提交 : 2: . : Can't open . husky/_/husky.sh