git中的两个分支,我使用gitolite进行访问控制
分支'dev'和分支'main'。
开发人员必须承诺'dev',并合并到'main',然后推'dev'
和'主'
我的问题是如何只允许开发人员承诺'dev',
并合并为'main',但不能直接提交'main'
我的意思是,如果开发人员在尝试时将代码直接推送到“主要”
推到远程'主',他们将失败。
答案 0 :(得分:1)
gitolite允许您添加自定义服务器端挂钩。
使用此更新挂钩添加支票:
#!/bin/bash
ref=$1
old=$2
new=$3
[[ $ref == refs/heads/main ]] || exit 0
reject(){
echo "$@"
exit 1
}
parent=$(git rev-parse $new^)
[[ $parent == $old ]] || reject not a single commit
git rev-parse $new^2 &>/dev/null || reject not a merge commit
(对于gitolite,你必须将它放入update.secondary文件夹。)