Ignorar ganchos de confirmação do Git

505

Eu estou olhando para um gancho git que procura por instruções de impressão no código Python. Se uma declaração de impressão for encontrada, ela impede o commit do git.

Quero substituir esse gancho e me disseram que há um comando para fazê-lo. Não consegui encontrá-lo. Alguma ideia?

Ben
fonte
1
Uma solução que é mais genérico (também trabalho para git comandos diferente commit): stackoverflow.com/questions/58337861/...
Gabriel Devillers

Respostas:

868

Talvez (da git commitpágina de manual ):

git commit --no-verify

-n  
--no-verify

Esta opção ignora os ganchos de pré-confirmação e commit-msg. Veja também githooks (5) .

Conforme comentado por Blaise , -npode ter uma função diferente para determinados comandos.
Por exemplo, git push -né realmente um impulso a seco.
Apenas git push --no-verifypularia o gancho.


Nota: O Git 2.14.x / 2.15 aprimora o comportamento --no-check:

Veja commit 680ee55 (14 ago 2017) por Kevin Willford (``) .
(Mesclado por Junio ​​C Hamano - gitster- na confirmação c3e034f , 23 de agosto de 2017)

commit: ignore o descarte do índice se não houver pre-commitgancho

" git commit" usado para descartar o índice e reler a partir do sistema de arquivos, caso o pre-commitgancho o tenha atualizado no meio; isso foi otimizado quando sabemos que não corremos o pre-commitrisco.


Davi Lima aponta nos comentários o git cherry-pickfaz não apoiar --no-verificar.
Portanto, se um cherry-pick acionar um gancho de pré-confirmação, você pode, como nesta postagem do blog , comentar / desativar de algum modo esse gancho para que o seu git cherry-pick prossiga.
O mesmo processo seria necessário no caso de a git rebase --continue, após uma resolução de conflito de mesclagem.

VonC
fonte
1
@DaviLima Obrigado. Eu incluí seu comentário na resposta para ter visibilidade.
VonC 01/09/19
1
obrigado, @Vonc. o mesmo acontece para git rebase --continuebtw
Davi Lima
Olá, no meu caso, alguém da minha equipe continua atualizando minha hookpasta com alguns scripts de pré-confirmação, é tão irritante, existe uma maneira de impedir que minha hookpasta seja substituída pelo git pull?
Zennichimaro
@Zennichimaro Talvez você possa copiar a pasta do gancho de recompra em outro lugar e configurar um gancho pós-mesclagem ( git-scm.com/docs/githooks#_post_merge ) que detectará se a atração afeta a pasta do gancho de recompra e proporá copiar sua conteúdo na pasta de ganchos local (fora do repositório): dessa forma, você pode pelo menos controlar se deseja que seus ganchos sejam substituídos ou não pelo que é empurrado por seus colegas.
VonC
22

De man githooks:

pré-confirmação
Esse gancho é chamado pelo git commit e pode ser ignorado com a opção --no-confirm. Ele não usa parâmetro e é chamado antes de obter a mensagem de log de confirmação proposta e fazer uma confirmação. Sair com status diferente de zero desse script faz com que o commit do git seja interrompido.

Chris Eberle
fonte
2

Para very beginnersquem passou algumas horas para esse commit (com commente no verify) sem mais problemas

git commit -m "Some comments" --no-verify
Moumit
fonte