我在一个使用Composer和Git进行版本控制的项目中使用PhpCsFixer。
当我启动PhpCsFixer时,该工具会更新所有文件。我正在寻找解决方案:
- 以限制对修改的文件的修复
- 以限制对暂存文件的修复
我已经尝试通过composercomposer fix-staged-files
创建一个命令,但它会影响所有文件。
...
"scripts": {
...
"fix-staged-files": "php-cs-fixer fix --config=quality/.php_cs.dist --allow-risky yes ",
...
}
有一节解释了如何只检查更改的文件:https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.0.0/doc/usage.rst#using-ci 上的php-cs修复程序
但我从来没有用过,为什么不简单地在缓存中回复呢?当您第一次运行fixer时,它会构建一个缓存,并且每次连续运行都只检查自上次运行以来修改过的文件。
命令:
$ php ./vendor/bin/php-cs-fixer fix --using-cache=no
--config .php-cs-fixer.dist.php --diff --allow-risky=yes
--path-mode=intersection --
$(git diff --name-only --diff-filter=ACMRTUXB
$(git cherry origin/master | head -1 | awk '{print $2}')..HEAD)
或别名样式:
# /etc/bash.bashrc
function ff(){
php ./vendor/bin/php-cs-fixer fix --using-cache=no --config .php-cs-fixer.dist.php --diff --allow-risky=yes --path-mode=intersection -- $(git diff --name-only --diff-filter=ACMRTUXB $(git cherry origin/master | head -1 | awk '{print $2}')..HEAD)
}
export -f ff