我有一个预提交钩子,我想将它添加到存储库,以便通过检查它,我的同事立即将它.
但是,如果我尝试添加它(在我的项目的根目录中),我得到以下结果:
$ git add .git/hooks/pre-commit
error: Invalid path '.git/hooks/pre-commit'
error: unable to add .git/hooks/pre-commit to index
Run Code Online (Sandbox Code Playgroud)
任何想法,如果这项工作,如何实现我的目标?
Von*_*onC 10
检查出来我的同事们立刻就把它拿出来了
2015年9月:这是不可能的:一个钩子可以放在源代码控制中(你只需要复制你的git仓库中的脚本),但它不能在克隆/结账时"自动就位"(活动):这将是一种方式太危险了,取决于钩子实际上在做什么.
另请参阅" Git远程/共享预提交挂钩 "
你仍然需要通过在git repo中添加一个符号链接(甚至在Windows上)来激活它.
2016年12月更新:OP Calamity Jane 在评论中提到:
我现在已经在symfony2项目中解决了这个问题(和其他项目一样,它也应该工作)将它作为一部分
composer.json
.
因此,如果同事正在做一个composer install
或者composer update
,它会自动放在正确的位置.
"scripts": { "dev-install": [ "bash setup_phpcs.sh" ] },
Run Code Online (Sandbox Code Playgroud)
因此,在dev上,
setup_phpcs.sh
会自动调用并将钩子从存储库中的文件夹复制到正确的位置.
由于钩子是存储库的一部分,因此可以轻松更新和分发.