简而言之:当一个预提交钩子修改文件时,PhpStorm的行为会变得奇怪。
我有一个预提交钩子,用于检查js和css文件的修改情况,如果其中一个文件被修改,我们希望该钩子更改一个配置文件(我们使用该文件来强制重新加载“客户端文件”的所有浏览器的缓存),以便将该更改包含在提交中。
该钩子如下所示:
#!/bin/bash
JSCSSCHANGE=`git status|grep -E "(.css|.js)"|wc -l`
if [ $JSCSSCHANGE -ne 0 ]; then
#MODIFY THE FILE
git add .
fi
事实是,当我们通过命令行或SourceTree进行提交时,它可以正常工作:文件被修改并包含在提交中。
但是,当我们通过PhpStorm进行提交时,在提交完成后,尽管已经包含了修改过的文件,但是我们还需要再次提交该文件,而且该文件状态为已修改。提交本身是完美的,并且包含了修改,但是我们仍然需要提交相同状态下的文件。