2014-02-13 5 views
0

나는 인터넷 검색을 시도했지만 올바른 대답을 찾을 수 없습니다.git commit 후크에서 브랜치를 재설정하십시오.

기본적으로 원하는 것은 분기를 건드릴 수없는 클라이언트 측 (Developer Machines)에서 git 훅을 가질 수 있다는 것입니다.

Ex.

마스터 : gitlab을 사용하여 마스터를 잠금 설정할 수 있습니다. 그러나 마스터는 병합을 통해 만지고 다른 누구도 마스터를 직접 만질 수 없도록하고 싶습니다. 내가 원했던 것은 그들이 마스터하는 변경 사항을 커밋하지 못하게하는 자식 고리입니다.

내 생각은 사람이 마스터에서 변경 사항을 적용하려고하면, 마스터에

git reset --hard 

할 것이라고 미리 커밋 후크를하는 것입니다.

#!/bin/sh 

    if ref == 'refs/heads/master': 
     print "==============================================" 
     print "Error. You cannot Make Changes to Master  " 
     print "==============================================" 

     SOMEHOW RUN git reset --hard 

이 작품이 좋을까요? 어떻게 git 명령을 실행할 수 있습니까?

+1

더 나은 접근법은 단순히 공유 저장소에서 '마스터'로 푸시를 허용하지 않는 것입니다. 자신이 원하는대로 저장소에서 '마스터'를 어지럽히도록 허용하지만 변경 사항을 수락하지 마십시오. 놀이터에서 퍼져 나갔다. – twalberg

답변

0
#!/bin/bash 

if [ "$(git symbolic-ref HEAD 2>/dev/null)" = "refs/heads/master" ] 
then 
    echo "Cannot make changes to master" 
    exit 1 
fi 
exit 0 

pre-commit 후크에서 0이 아닌 값을 종료하면 커밋이 중단됩니다. 분기를 바꾸는 것을 잊었 기 때문에 변경 내용을 모두 삭제할 필요가 없으므로 git reset --hard을 생략했습니다.

+0

** git add -u ** ====** git commit -m '테스트 커밋'** .git/hooks/pre-commit : 2 : [: refs/heads/master : 예기치 않은 연산자 [마스터 8beee38] 시험 1 파일, 0 삽입 (+), 0 결실 변경 커밋 (-) IT를 평가 .DOC (66 %) 이 사전에 번호를 추가하는 경우 나 수신 에러 메시지가 다시 쓰기 -commit hook –

+0

'='너무 많습니다. 지금은 정상적으로 작동해야합니다. – Learath2

+0

.git/hooks/pre-commit : 2 : [: refs/heads/master : 예상치 못한 연산자 [master 8beee38] 테스트 커밋 파일 1 개가 변경됨, 삽입 0 개, 삭제 0 개) 커밋을 입력 할 때 발생하는 오류 인 IT 평가 .doc (66 %) –