2

有没有办法阻止删除远程分支?

我想阻止删除远程分支,但是像代码检查和签出这样的正常流程应该可以正常工作!!

不使用 gitolite!可能吗 ?

请帮忙 !

4

3 回答 3

2

对的,这是可能的。只需添加一个合适的服务器端 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
于 2013-10-10T11:02:18.357 回答
2
 refs/heads/*,delete)
       # delete branch
              if [ "$allowdeletebranch" != "true" ]; then
                echo "*** Deleting a branch is not allowed in this repository" >&2
                    exit 1
                fi

在更新钩子中添加这个解决了我的问题希望这对其他人也有帮助

于 2013-10-11T11:23:19.740 回答
-1

我不确定你为什么要避免 gitolite (这是所有访问控制的终点,因为它是),但我在这里有一个示例预接收脚本,它使用钩子。* git config 条目做一些简单的访问控制。它不像 gitolite 那样花哨,但它做了一些我曾经关心的事情。:-)

于 2013-10-10T16:19:10.340 回答