Se está presionando la twig principal del bloque si se modificó el file

Como tenemos varios serveres en producción, bash simplificar el procedimiento de implementación del código.

Para la automation de la implementación mencioné el siguiente enlace: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps que fue muy útil.

Pero el problema es que en nuestro caso tenemos que abordar los problemas de nuestros clientes de inmediato y, por lo tanto, terminamos modificando el código en los serveres de producción.
Por lo tanto, no podemos darnos el lujo de perder los cambios debido al git push.

Agregué un cheque en el gancho posterior a la recepción para verificar si hay alguna modificación en algún file de la siguiente manera.

MODIFICATIONS="git --work-tree=/code/path --git-dir=/home/git/repo_path status | grep modified:" if [ -z "$MODIFICATIONS" ];then git --work-tree=/code/path --git-dir=/home/git/repo_path checkout -f else echo "Modified present !!!" fi 

Esto ayuda a retener los cambios en los files. Pero cada git push prod1 master actualiza el repository.

Probé los ganchos de pre-recepción y actualización, pero no funcionan (creo que porque estoy constantemente presionando el mismo master twig).

Sugiera cómo puedo evitar que los cambios pasen al repository remoto de git a la twig master .
Entonces, cuando digo git push prod1 master debería darme un error.

No daré una conferencia sobre los males asociados con "modificar el código en los serveres de producción". Es una práctica terrible, pero estás en una situación determinada y es lo que es.

Sin embargo, simplemente puede pedirles a los desarrolladores que están modificando el código en los serveres de producción que verifiquen su código regularmente, incluso si solo en el repository git local en el server usando un command como git commit -a -m "emergency change for customer xyz"

De esta manera, a pesar de que los cambios no se fusionan en el repository de desarrollo real, se están rastreando en la máquina donde se realizaron.

De hecho, esto bloqueará los cambios entrantes cuando alguien haga git push prod1 master , ya que la twig principal se habrá separado de la twig principal en el repository de desarrollo y no habrá forma de adelantar un empuje.

Si sigues este consejo, el command git push prod1 master debería terminar produciendo un error, tal como lo pediste.