Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git hooks : applying `git config core.hooksPath`

Tags:

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

like image 658
Nicolas Marshall Avatar asked Sep 05 '16 14:09

Nicolas Marshall


People also ask

What is core hooksPath?

The core. hooksPath config allows you to set a directory where the hooks are located for a repository. This is particularly useful if trying to commit your hooks to the repository (e.g. for sharing hooks with the team).

How do I get rid of core hooksPath?

If the option is set in your local repository and you want to undo it, then git config --unset core. hooksPath is sufficient to unset it, which will make Git pick the default option.

Where are git hooks configured?

All Git hooks are ordinary scripts that Git executes when certain events occur in the repository. This makes them very easy to install and configure. Hooks can reside in either local or server-side repositories, and they are only executed in response to actions in that repository.


1 Answers

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.

like image 161
torek Avatar answered Sep 22 '22 20:09

torek