문제

푸시는 userID를 분기가 아닌 인수로만 인식 할 수 있기 때문에 GIT 업데이트 후크에 잠금 스크립트를 사용하여 파일을 푸시하는 사용자로부터 저장소를 잠그는 아이디어가 있습니다. 그래서 디렉토리를 잠그는 전체 repo를 잠글 수 있습니다.

GIT에서 특정 지점을 잠그는 방법이 있습니까?

또는 업데이트 후크가 사용자가 푸시하는 지점과 코드가 푸시되는 지점을 식별 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

푸시되는 분기는 첫 번째 매개 변수입니다. 업데이트 후크. 지점을 잠그고 싶다면 myfeature 푸시를 위해이 코드 (배치 hooks/update) 할 것입니다 :

#!/bin/sh
# lock the myfeature branch for pushing
refname="$1"

if [[ $refname == "refs/heads/myfeature" ]]
then
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    echo "You cannot push to myfeature! It's locked"
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    exit 1
fi
exit 0

다른 팁

문서의 업데이트 후크 :

후크는 각 심판이 업데이트되도록 한 번 실행하고 세 가지 매개 변수를 가져옵니다.

  • REF의 이름이 업데이트되고 있습니다.
  • Ref에 저장된 오래된 개체 이름,
  • 그리고 새로운 개체 이름은 Ref.

그렇습니다. 그렇습니다. 분기가 무엇을 밀고 있는지 정확히 알고 있으며, 분기가 밀려 나가는 것을 원하지 않으면 해당 매개 변수와 종료 실패를 단순히 확인할 수 있습니다.

그리고 당신이 (지능적으로) 이것을하고 싶다면 ~ 전에 사용자는 객체를 업로드했으며, 사전 수신 후크를 사용할 수 있습니다.

이 후크는 수신 작업을 위해 한 번 실행됩니다. 인수는 필요하지 않지만 각 심판이 업데이트되면 표준 입력에 수신됩니다.

<old-value> sp <new-value> sp <ref-name> LF

어디 <old-value> 기존 객체 이름은 Ref에 저장되어 있습니다. <new-value> 새 개체 이름은 Ref에 저장되어 있고 <ref-name> 심판의 성명입니다.

(공간과 선 피드)

Gitolite와 같은 도구에는 다음과 같은 기능이 있습니다. http://github.com/sitaramc/gitolite

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top