내가 'git push'할 때 git 후크가 원격으로 푸시됩니까?


95

repo / .git / hooks / post-commit의 로컬 저장소에 새 후크 스크립트를 만든 다음 "git push"를 실행하면 후크가 원격으로 푸시됩니까? 그런 다음 다른 개발자가 동일한 출처에서 "git pull"을 실행하면 내 새 후크를받을 수 있습니까?



답변:


81

아니요. 후크는 리포지토리 당이며 푸시되지 않습니다. 마찬가지로 repo 구성도 푸시되지 않으며 .git/info, 또는 기타 여러 항목에 포함되지 않습니다 .

밀고 당기는 것은 브랜치 / 태그와 커밋 객체 (그리고 커밋에서 도달 할 수있는 모든 것, 예를 들어 트리, 블롭) 만 교환합니다.


14
중앙에 후크를두고 각 복제본에 연결하여 적용하는 방법이 있습니까?
f1wade

4
@ f1wade .githooks버전이 제어 되는 디렉토리를 추가 한 다음 sym-link 또는 내부에서 래퍼 후크 스크립트를 만들 수 있습니다 .git. 복제는 자동으로 연결되지 .githooks않지만 일단 연결되면 새로운 버전의 후크 스크립트를 푸시하고 가져올 수 있습니다.
Philip Couling

47

아니요, git 후크는 리포지토리 코드의 일부가 아니기 때문에 푸시되거나 풀링되지 않습니다.

간단한 클라이언트 측 및 서버 측 후크 목록은 문서 를 참조하십시오 .

특정 리포지토리에서 복제하거나 가져 오는 모든 클라이언트에 대해 일부 후크를 활성화하려면 후크를 코드베이스에 추가 한 다음 자체 스크립트를 생성하여 복사하거나 연결해야합니다. repo/.git/hooks/ .


4
그러나 복사 스크립트는 어떻게 호출됩니까?
Adam Johns

6
@AdamJohns 개발자 setup.sh가 저장소를 처음 복제 할 때 실행 하는 형식으로 사용자 / 개발자에 의해 호출됩니다 . 그 후, 예를 들어 매 풀 후에 스크립트를 업데이트하는 스크립트를 다시 실행하는 후크를 사용하여 후크에 대한 업데이트가 자동으로 발생할 수 있습니다. 따라서 개발자에게 직접 의존 할 필요가 없습니다.
cm92

4

안타깝게도 git 2.9부터는 .githooks 폴더 (다른 사람들이 언급했듯이)에 넣고 다음을 실행할 수 있습니다.

git config --local core.hooksPath .githooks/

따라서 심볼릭 링크 나 복사 파일이 필요하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.