Eu tenho um script de teste, que precisa confirmar as alterações antes de executar os testes e, em seguida, reverte esse commit. Então, eu não quero que esse falso commit chame o post-commit hook, o que pode fazer algo que não será restaurado revertendo o commit.
Existe uma opção para ignorar o gancho de pré-confirmação:, git commit --no-verify ...
mas não encontrei nada semelhante para o pós-confirmação. Aqui está um pedaço do meu script, com solução simples para o problema:
gitdir="$(git rev-parse --git-dir)"
hook="$gitdir/hooks/post-commit"
# disable post-commit hook temporarily
[ -x $hook ] && chmod -x $hook
git commit -a -m "Commit all changes for testing. Will be reverted automatically"
# enable it again
chmod +x $hook
Nós apenas tornamos o gancho não executável para este commit e pronto!
A ideia é tirada daqui