Git hook no ejecuta 2 commands consecutivos

Intento crear un gancho pre-push para ejecutar php-cs-fixer antes de cada inserción.

Este es el gancho pre-push actual que tengo:

 #!/bin/sh exec php-cs-fixer fix . --config-file=".php_cs" && git commit -am 'PSR-2' 

El primer command se activa sin ningún problema. Solo el git commit -am 'PSR-2 no. Para ser más precisos, el php-cs-fixer ejecuta seguido de este error de error: failed to push some refs to ..

También probé lo siguiente sin suerte:

 #!/bin/sh php-cs-fixer fix . --config-file=".php_cs" && git commit -am 'PSR-2' 

 #!/bin/sh (php-cs-fixer fix . --config-file=".php_cs" && git commit -am 'PSR-2') 

De acuerdo con esta pregunta de stackoverflow , debería ejecutarse solo si cmd1 ha tenido éxito.

El command incorporado del ejecutor reemplaza el shell con el progtwig dado. NO bifurca un nuevo process para ejecutar php-cs-fixer .

Como el shell es reemplazado por el progtwig php-cs-fixer , && git commit ... nunca se ejecuta.

Echa un vistazo a la página de manual del exec

Si se especifica command, reemplaza el shell. No se crea un nuevo process.

La primera línea de php-cs-fixer debería verse así

 #!/usr/bin/env php 

y php-cs-fixer debería tener permissions de ejecución chmod +x php-cs-fixer .

Que solo puedes usarlo

 php-cs-fixer fix . --config-file=".php_cs" && git commit -am 'PSR-2'