slacy
slacy

Reputation: 11763

Are git hooks pushed to the remote when I 'git push'?

If I create a new hook script in my local repository in repo/.git/hooks/post-commit and then I run "git push" are the hooks pushed to the remote? Then, when the other developers run "git pull" from the same origin will they get my new hooks?

Upvotes: 123

Views: 52332

Answers (3)

Marco Medrano
Marco Medrano

Reputation: 3030

Sadly no but since git 2.9 you can place them into .githooks folder (as others mentioned) and run:

git config --local core.hooksPath .githooks/

So no need to create symlinks or copy files.

Upvotes: 47

Lily Ballard
Lily Ballard

Reputation: 185663

No. Hooks are per-repository and are never pushed. Similarly, the repo config isn't pushed either, nor is anything in .git/info, or a number of other things.

Pushing and pulling only exchanges branches/tags and commit objects (and anything reachable from a commit, e.g. trees, blobs).

Upvotes: 109

Marco Leogrande
Marco Leogrande

Reputation: 8458

No, git hooks are not pushed or pulled, as they are not part of the repository code.

Please refer to the documentation for a list of simple client-side and server-side hooks.

If you want to enable some hooks for all clients that clone or pull from a given repository, you have to add the hooks to your codebase and then create your own script to copy them into, or link to them from repo/.git/hooks/.

Upvotes: 56

Related Questions