有没有办法阻止删除远程分支?
我想阻止删除远程分支,但像代码检查和检出的正常流程应该可以正常工作!!
不使用gitolite!有可能吗?
请帮忙!
答案 0 :(得分:2)
是的,有可能。只需添加一个合适的服务器端git hook。
您可能想要使用预接收挂钩。有关详细信息,请查看here或here。
示例:
#create repositories
git init a
git init --bare b
#add the hook in "b"
echo -e '#!/usr/bin/bash\nread old new ref\ntest $new != 0000000000000000000000000000000000000000' >>b/hooks/pre-receive
chmod +x b/hooks/pre-receive
#create a commit in "a"
cd a
echo foo >test
git add .
git commit -m testcommit
#push it to "b"
git push ../b master
#try to delete remote branch
git push ../b :master
答案 1 :(得分:2)
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
在update hook中添加这个解决了我的问题 希望这也能帮助其他人
答案 2 :(得分:0)
我不确定你为什么要避免使用gitolite(这是所有访问控制的终点),但我有一个使用钩子的示例预接收脚本here。 * git config条目来做一些简单的访问控制。它不像gitolite那么华丽,但它做了一些我关心过的事情。 : - )