2017-11-09 1 views
1

저는 후크에 아주 새내기입니다. BT가 시작하는 지점 만 푸시/업데이트된다는 것을 저장소에 확인하고 싶습니다. 따라서 마스터/현재 브랜치는 업데이트 할 수 없습니다. 나는 그것을 어떻게 얻을 수 있습니까? 나는 그것이 업데이트 스크립트의 일부가되어야한다고 생각합니다. 맞습니까?git 서버 사이드 훅 - 특정 브랜치 만 푸시됩니다.

답변

2

pre-receive 후크 일 수 있습니다.

#!/bin/bash 

#sample 
z40=0000000000000000000000000000000000000000 
while read old new ref;do 
    #fail if it's not a branch or the name of the branch does not start with BT 
    if [ "${ref:0:13}" != "refs/heads/BT" ];then 
     echo "Error: not allowed to update $ref" 
     exit 1 
    fi 

    #deal with other cases if necessary 
    #create a ref, branch or tag 
    if [ "$old" = "$z40" ];then 
     : 
    fi 

    #delete a ref, branch or tag 
    if [ "$new" = "$z40" ];then 
     : 
    fi 
done 
+1

이 훅은 모든 태그 이름이나 Gerrit 스타일의 'refs/for/...'이름 등에 대한 모든 작업을 금지합니다. 허용하려면 'BT'로 시작하지 않는 분기를 거부하기 전에, 레퍼런스가 브랜치 이름인지 확인하십시오 ('refs/heads /'로 시작). – torek

+0

감사합니다, 잘 작동합니다. – user2194805