Git hooks : applying `git config core.hooksPath`

Nicolas Marshall picture Nicolas Marshall · Sep 5, 2016 · Viewed 18.9k times · Source

I have a git repository with a pre-commit hook set up :

my-repo
|- .git
   |- hooks
      |- pre-commit     # I made this file executable

Until there, everything works. The hook is running when I commit.

=================================

I now run git config core.hooksPath ./git-config/hooks in my-repo.

The folder structure is this one :

my-repo
|- .git
   |- hooks
|- git-config
   |- hooks
      |- pre-commit     # I made this file executable as well

What happens is :

  • the new pre-commit script doesn't run on commit
  • the old pre-commit script still runs on commit if I leave it in my-repo/.git/hooks
  • running git config --get core.hooksPath in my-repo outputs ./git-config/hooks

How can I make the new pre-commit hook run on commit ?

Here's the link to the docs I apparently don't understand well :
https://git-scm.com/docs/git-config
https://git-scm.com/docs/githooks

Answer

torek picture torek · Sep 6, 2016

The core.hooksPath support is new in Git version 2.9, having been put in with commit 867ad08a2610526edb5723804723d371136fc643. If your Git version is not at least 2.9.0, setting a hooks-path variable will have no effect at all.