2017-11-03 1 views
0

Git 저장소에서 원본에서 로컬로 파일을 가져온 후 동기화를 수행하는 다른 스크립트를 실행하는 것이 절대적으로 중요합니다. 여전히 문제가 해결되지 것이라고, 그러나git pull을 직접적으로 사용하지 못하도록하십시오.

git pull origin master 
# do our synchronizing stuff 

: 프로그래머가 (나를 포함)도 중요한 일을 잊어 버리는 경향이있다, 내가 생각하는 는 그러나, 나는 작은 bash는 스크립트를 작성의 더 나은 거라고 모든 개발자 수 스크립트를 사용하지 않고 일반 git pull을 계속 수행하십시오. 그래서 내가 생각하기에 : Git 저장소를 설정하면 특수 매개 변수 만 가져올 수 있습니다. 특수 매개 변수가 없으면 사용자 지정 메시지가 반환됩니다. 그래서 같이 :

git pull origin master -special-parameter 
# do our synchronizing stuff 

git pull not allowed directly. Please use our special script.에 끝날 것 -special-parameter없이 git pull origin master을하는 이 가능합니까?

유일한 해결책은 사용자 권한을 변경하여 저장소에 대한 모든 권한을 취소하고 special_script_user 전체 권한을 부여하고 git pullsu -c 안에 배치하는 것입니다. 그러나, 그것은 정말로 우아하지 않을 것입니다.

답변

1

거기에는 git hooks이 있습니다. 스크립트를 post-merge 후크로 정의하면 git pull 또는 git merge (두 변수를 구별하는 데 도움이되는 변수가 있음) 후에 자동으로 실행됩니다.

Be aware though that git hooks are not part of the repository content 당신이 당신의 끝에 훅을 저 지르지 못한다는 것을 의미합니다. 그리고 다른 모든 사람들도 마술을 가지고 있습니다.

해결책은 후크 스크립트를 저장소에 적용하고 각 개발자가 저장소를 처음 복제 할 때 활성화하도록 요청하는 것입니다. 예를 들어, 복사 또는 .git/hooks 디렉토리

ln -s hooks/post-merge .git/hooks/ 

에 연결 한 번만 수행해야합니다으로.

+0

나는 투표를하지 않는다. 이것을 확인한다. https://snag.gy/KMphIT.jpg – jezrael

관련 문제