Deshacer el repository de git con el enganche de implementación

Tengo un repository de GIT descubierto en un server de producción, y usa un gancho de recepción de posts para implementar todo lo que hago allí:

#!/bin/sh GIT_WORK_TREE=/path/to/webroot git checkout -f 

Para desplegar lo hago

 git push production 

Desde mi estación de trabajo, y todo está resuelto. Pero digo que presiono un compromiso que rompe algo y quiero revertir lo antes posible. Hará el siguiente trabajo:

 git push production [id of commit to revert to]:master 

IE ¿seguirá implementando todo en la webroot correctamente?

Eso debería funcionar como se esperaba. Probablemente necesites hacer git push +<commit>:master (nota el +) para replace el commit erróneo en el HEAD del master de producción.

+<commit>:master es un refspec; consulte la página de manual de git push para get más información sobre refspecs.

Recomendaría revertir más explícitamente sin necesidad de forzar la inserción al server de producción haciendo:

 git revert <commit to revert> git push production 

o

 git reset --hard <commit to revert to> git push -f production 

Consulte ¿Cómo revertir el repository de Git a una confirmación previa?