我写了一个Git post-commit钩子,它工作正常.但是,我想添加此钩子以应用于我正在处理的所有当前(和将来)git存储库.我尝试将钩子添加到我~/.git/hooks/而不是项目目录中的hooks目录中,但是,这似乎不起作用.
有没有办法创建将应用于我的系统上的所有存储库的全局Git挂钩(无需将它们复制到每个项目目录中)?如果没有,那么最好的解决方案是什么 - 也许是一个git-init模板?
使用一个官方存储库作为远程数据库,并从中克隆多个本地存储库,是否可以在该主存储库上编写预提交钩子并在其所有克隆上强制执行?
不确定这是否可以在git中使用(我没有找到它,但我可能在我的搜索中使用了错误的词汇表),但是能够修改和启用钩子作为所有新存储库的默认值是有用的(在我的意思是创建的时间)所以每次创建新的存储库时都不必自定义这些.看起来这样做的简单方法是编写一个包装器,在我创建一个新的存储库时设置我的钩子和chmods,但如果有一种内置到git中的方法,我宁愿使用它而不是使用不必要的包装器脚本,而不是四处闲置.
澄清从评论复制到现在删除的答案:
我的问题是,是否可以更改所有新存储库的默认行为,因此不需要每次为每个新存储库以相同的方式自定义它们.简单的答案是编写一个包装器来创建和自定义repos(它生成钩子脚本并对它们进行chmod),但似乎这个默认行为也应该是可自定义的,而不必这样做.
在用例或工作逻辑方面,git中的pre-push和pre-receive hook之间是否有区别?
我从他们的文档中可以理解的唯一区别是他们收到的输入 -
1. 预推:有关推送内容的信息在挂钩的标准输入上提供了表格线 - 本地参考SP本地sha1 SP遥控器SP遥控器sha1 LF
2. 预接收:对于每个要更新的ref,它在标准输入上接收格式的行 -
旧值SP新值SP ref-name LF
但是,我想知道每个是否有特定的用例挂钩还是可以互换使用?