是否可以使用 git bash 设置分支权限?我想对 master 分支有更严格的权限,这样有些人可以使用开发分支并提交到它,并且可能不会自己更改 master 分支。
如果可能的话,我将如何尝试去做呢?
可能需要这样做的典型场景是将对官方(或发布)分支的访问限制为团队中的一部分人。一个好的策略可能是拥有两个 repo——一个是访问控制更严格的主 repo,另一个是团队中每个人都可以访问并用于设置工作分支的 repo。并根据需要从工作分支拉到主仓库。当然,您可以调整它以适应您的团队结构和需求。
这尤其适用于 github 等服务。
bitbucket 支持分支限制。请参阅此处的链接:https ://blog.bitbucket.org/2013/09/16/take-control-with-branch-restrictions/
如果你的开发团队是一群文明的人,只需要一个友好的提醒,你可以使用pre-receive 服务器端 hook拒绝推送:
#!/bin/bash
# Extract the user email (%ae) from the last commit (author email)
USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
# Looping through all the pushed branches
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "master" == "$branch" ] && [ "the_integrator@your_company.com" != $USER_EMAIL ]; then
echo "Naughty naughty!"
exit 1 # fail, i.e. reject push
fi
done
尽管用户可以轻松伪造他们的 git 电子邮件地址,但我仍然会将挂钩文件本身设为只读。
参考: