git hook语法检查

zed*_*doo 7 git

试图为git存储库创建一个php语法检查钩子.当我发现一个完全符合这一要求的代码片段时,我很高兴.

但似乎片段脚本有一个缺陷.它执行

git diff-index --cached --name-only HEAD
Run Code Online (Sandbox Code Playgroud)

获取索引中的文件列表.现在它为该列表上的每个文件运行php -l.缺陷是工作副本和临时区域之间的文件可能不同.如果暂存区域php有语法错误,但工作副本版本没有,则没有找到语法错​​误,并且提交成功,这是要防止的事情.

这是一个难以解决的问题,还是有一些方法可以在每个文件的登台版本上运行php -l?

tak*_*hin 7

我很高兴使用这个PHP语法验证钩子.希望它也能满足您的需求.

它使用git diff-index --cached --full-index.