我正在使用沙哑运行git钩子。
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
我想防止直接提交到master分支。它应该只允许通过合并请求来更新master分支。
我从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
但是我想用沙哑的方式实现。我该怎么办?
答案 0 :(得分:2)
使用git-branch-is,您可以在主分支中阻止带有沙哑的提交
"pre-commit": "git-branch-is -r \"^((?!master).)*$\""
答案 1 :(得分:2)
我使用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
然后我在package.json的husky pre-commit字段中添加了一个条目
"husky": {
"hooks": {
"pre-commit": "sh hooks/pre-commit",
}
不再提交给master了:)
答案 2 :(得分:1)
我认为进行限制的位置不正确,因为可以轻松绕开它。 另外,我建议您修改存储库/分支的保护规则。
使用GitHub和Bitbucket的方法如下:
我知道这是一种不同的方法,但我希望它也会有所帮助。