如何将我的预提交挂钩添加到现有的git存储库

Cal*_*ane 11 git githooks

我有一个预提交钩子,我想将它添加到存储库,以便通过检查它,我的同事立即将它.
但是,如果我尝试添加它(在我的项目的根目录中),我得到以下结果:

$ 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会自动调用并将钩子从存储库中的文件夹复制到正确的位置.
由于钩子是存储库的一部分,因此可以轻松更新和分发.