Git 커밋 훅 건너 뛰기


504

파이썬 코드에서 print 문을 찾는 git hook을 찾고 있습니다. print 문을 찾으면 git commit을 막습니다.

이 후크를 재정의하고 싶습니다. 그렇게하라는 명령이 있다고 들었습니다. 나는 그것을 찾을 수 없었다. 이견있는 사람?


1
보다 일반적인 솔루션 (또한 다른 git 명령에 대해서도 작동 commit) : stackoverflow.com/questions/58337861/…
Gabriel Devillers

답변:


867

아마도 ( git commitman page에서 ) :

git commit --no-verify

-n  
--no-verify

이 옵션은 사전 커미트 및 commit-msg 후크를 무시합니다. githooks (5) 도 참조하십시오 .

으로 주석 에 의해 블 레즈 , -n특정 명령에 대해 다른 역할을 가질 수 있습니다.
예를 들어 git push -n실제로는 드라이 런 푸시입니다. 후크
git push --no-verify건너 뛸 것입니다.


참고 : Git 2.14.x / 2.15는 --no-verify 동작을 향상시킵니다.

참조는 680ee55 커밋 에 의해 (2017년 8월 14일) 케빈 Willford를 (``) .
(가 합병 Junio C 하마노 - gitster-커밋 c3e034f , 2017년 8월 23일)

commit: pre-commit후크 가 없으면 인덱스 삭제를 건너 뜁니다.

" git commit" pre-commit후크가 중간에 업데이트 된 경우를 대비하여 색인을 버리고 파일 시스템에서 다시 읽습니다 . 우리가 pre-commit후크를 실행하지 않는다는 것을 알 때 최적화되었습니다 .


다비 리마는 지적 코멘트에git cherry-pick 않습니다 하지 --no이 검증 지원합니다.
따라서 Cherry-pick이 사전 커밋 후크를 트리거하는 경우이 블로그 게시물 에서와 같이 git cherry-pick을 계속 진행하려면 해당 후크에 주석을 달거나 비활성화해야 할 수도 있습니다 . 병합 충돌 해결 후의
경우에도 동일한 프로세스가 필요 git rebase --continue합니다.



1
@DaviLima 감사합니다. 가시성에 대한 답변에 귀하의 의견을 포함 시켰습니다.
VonC

1
감사합니다, @Vonc. git rebase --continuebtw도 마찬가지입니다
Davi Lima

안녕하세요, 제 팀의 누군가가 hook미리 커밋 스크립트로 폴더를 계속 업데이트 하고 있습니다. 매우 짜증납니다 hook.git pull에 의해 폴더가 재정의되는 것을 막을 수있는 방법이 있습니까?
Zennichimaro

@Zennichimaro 어쩌면 그 repo 훅 폴더를 다른 곳으로 복사하고 post-merge hook ( git-scm.com/docs/githooks#_post_merge )을 설정하여 끌어 오기가 repo 훅 폴더에 영향을 미치는지를 감지하고 복사를 제안 할 것입니다 로컬 후크 폴더의 내용 (리포지토리 외부) : 그렇게하면 동료가 푸시 한 내용으로 후크를 무시할지 여부를 적어도 제어 할 수 있습니다.
VonC

22

보낸 사람 man githooks:

pre-commit
이 후크는 git commit에 의해 호출되며 --no-verify 옵션으로 무시할 수 있습니다. 매개 변수가없고 제안 된 확약 로그 메시지를 확보하고 확약하기 전에 호출됩니다. 이 스크립트에서 0이 아닌 상태로 종료하면 git commit이 중단됩니다.


2

분들 very beginners이 (확약을 위해 몇 시간을 보내고있는 사람 commentno verify더 이상의 문제에)

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