有没有办法阻止删除远程分支?
我想阻止删除远程分支,但是像代码检查和签出这样的正常流程应该可以正常工作!!
不使用 gitolite!可能吗 ?
请帮忙 !
对的,这是可能的。只需添加一个合适的服务器端 git 钩子即可。
例子:
#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
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
在更新钩子中添加这个解决了我的问题希望这对其他人也有帮助
我不确定你为什么要避免 gitolite (这是所有访问控制的终点,因为它是),但我在这里有一个示例预接收脚本,它使用钩子。* git config 条目做一些简单的访问控制。它不像 gitolite 那样花哨,但它做了一些我曾经关心的事情。:-)