This project uses Githooks, that allows running Git hooks checked into this repository. This folder contains hooks that should be executed by everyone who interacts with this source repository. For a documentation on how this works and how to get it installed, check the project README in the gabyx/githooks GitHub repository.
The directories or files in this folder tell Git to execute certain scripts on various trigger events, before or after a commit, on every checkout, before a push for example - assuming Githooks is already installed and run-wrappers are installed for the repository. The directory or file names refer to these events, like pre-commit
, post-commit
, post-checkout
, pre-push
, etc. If they are folders, each file inside them is treated as a hook script and will be executed when Git runs the hooks as part of the command issued by the user. Githooks comes with a command line tool tool, that allows you to manage its configuration and state with a git hooks <cmd>
command. See the documentation or run git hooks --help
for more information and available options.
Githooks uses an opt-in model, where it will ask for confirmation whether new or changed hooks should be run or not (or disabled).
Either create a file with the Git hook name, or a directory (recommended) inside the .githooks
folder, and place files with the individual steps that should be executed for that event inside. If the file is executable, it will be invoked directly, otherwise it is assumed to be a Shell script - unless this file matches one of the ignore patterns in the .githooks
area.
You can look at the .githooks
folder to see the local hooks in the repository, though if you have shared hook repositories defined, those will live under the ~/.githooks/shared
folder.
The command line tool can list out all of them for you with git hooks list
, and you can use it to trust or ingoring hooks.
You can find more information about how this all works in the README of the Githooks project repository.
If you find it useful, please show your support by starring the project in GitHub!