Create global pre-commit hooks for entire team

前端 未结 2 1221
春和景丽
春和景丽 2020-12-17 18:47

How can I create a global pre-commit hook that is available for everyone in the team to use? Basically, I want that anytime someone clones the remote repository he should ge

相关标签:
2条回答
  • 2020-12-17 19:05

    How can the pre-commit hook be made available to entire team by default?

    It can not, as I explained in "Difference between pre-push and pre-receive hook in git?"

    And from a security standpoint, that'd be really kind of scary - no one should have the ability to force me to execute certain scripts whenever I run certain git commands

    So:

    • using a shared template folder is one way, but supposed all users do know about the --template option of git clone.
    • adding the hooks in a dedicated folder of the repo itself is another, but each user has to decide to symlink those script to their own hooks.

    But in any case, remember that a git commit --no-verify would bypass the pre-commit hook anyway.

    That is why a server-side hook is safer (as discussed in "Difference between pre-push and pre-receive hook in git?") and will catch all bad commits pushed to a blessed repo.

    That is not say a pre-commit hook is useless: if you can convince the users to activate it, it will help catch error sooner, which is a good thing.
    But it cannot be enforced "automatically".

    0 讨论(0)
  • 2020-12-17 19:11

    Luckily there is not a way to force hooks to people upon clone.

    If there was, you could write a post-receive hook with rm -rf / in it and wipe people's hard disk on pull

    0 讨论(0)
提交回复
热议问题