有什麼辦法阻止刪除遠程分支?如何在不使用gitolite的情況下防止git中的遠程分支刪除
我想阻止遠程分支的刪除,但正常的流程,如代碼檢查和簽出應該工作正常!
不使用gitolite!可能嗎 ?
請幫忙!
有什麼辦法阻止刪除遠程分支?如何在不使用gitolite的情況下防止git中的遠程分支刪除
我想阻止遠程分支的刪除,但正常的流程,如代碼檢查和簽出應該工作正常!
不使用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
我不知道爲什麼你避免gitolite(這是排序的所有訪問控制的終點,因爲它是),但我有一個樣品前收到使用鉤子的腳本here * git config條目做一些簡單的訪問控制。它不像gitolite那樣華麗,但它有一些我關心的事情。 :-)
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
添加此更新中的鉤解決我的問題 希望這會幫助別人太
'注:勉強TESTED'好,這激發信心=)。國際海事組織使用gitolote或類似的,當它不是必要的只是浪費精力/時間;當你需要的只是一個鉤子 - 改變一切是一種非常干擾的方式來實現這一點。 – AD7six