运行本地和全局git钩子

运行本地和全局git钩子,git,githooks,Git,Githooks,我有一个全局git hookpost commit,它位于: ~/.git_templates/hooks/post-commit 我已经让它全球化了 git config --global init.templatedir '~/.git_templates' 并使用git init更新我的git项目的设置 然而,有一个项目有自己的提交后钩子: ~/src/git.repo/.git/hooks/post-commit 本地的运行了,但阻止了全局的运行。如何实现这两个都在提交后运行 我希

我有一个全局git hook
post commit
,它位于:

~/.git_templates/hooks/post-commit
我已经让它全球化了

git config --global init.templatedir '~/.git_templates'
并使用
git init
更新我的git项目的设置

然而,有一个项目有自己的
提交后
钩子:

~/src/git.repo/.git/hooks/post-commit
本地的运行了,但阻止了全局的运行。如何实现这两个都在提交后运行


我希望避免在本地提交后钩子中添加命令。

可能的解决方法是:

  • 确保为所有用户部署了全局钩子
  • 修改全局钩子以调用预先约定的脚本,如果用户愿意,可以设置该脚本。例如
    $GIT\u DIR/hooks/my post commit
my post commit
不是标准名称,因此它不会由Git自动运行。
只有您的全局钩子将调用,并且它将调用用户设置的客户端自定义脚本


这并没有改变这样一个事实:如果本地
$GIT\u DIR/hooks/post commit
确实存在,那么仍然会阻止全局钩子运行。

您不能。你的repo是你的,他们的是他们的,只有在没有显式本地编码的情况下保持repo完全独立才能保持这一点。@jthill这是一个遗憾,因为有些钩子用例只与我自己相关(例如,通过网络摄像头在提交时拍照),而不是应该只从本地钩子空间运行的钩子(例如,强制执行特定代码样式的预提交钩子)。我确实理解为什么只保留某些钩子是有意义的,而不是所有钩子。我认为在钩子域上有一些东西是很好的。无论如何,你能为你的声明引用一个来源,并将你的评论扩展成一个答案吗?我很可能会接受它,尽管我很不情愿。”。这就是他们的全部。