I have a testing script, which needs to commit changes before running tests and then it reverts that commit back. So, I don't want this fake commit to call post-commit hook, which may do something that won't be restored by reverting commit.
There is an option for bypassing pre-commit hook:
git commit --no-verify ..., but I haven't found anything similar for post-commit. Here is a piece of my script, with simple solution for the problem:
gitdir="$(git rev-parse --git-dir)"
# 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
We just make the hook not executable for this commit and that's it!
Idea is taken from here