试图为git存储库创建一个php语法检查钩子.当我发现一个完全符合这一要求的代码片段时,我很高兴.
但似乎片段脚本有一个缺陷.它执行
git diff-index --cached --name-only HEAD
Run Code Online (Sandbox Code Playgroud)
获取索引中的文件列表.现在它为该列表上的每个文件运行php -l.缺陷是工作副本和临时区域之间的文件可能不同.如果暂存区域php有语法错误,但工作副本版本没有,则没有找到语法错误,并且提交成功,这是要防止的事情.
这是一个难以解决的问题,还是有一些方法可以在每个文件的登台版本上运行php -l?