gancho de manera diferente para diferentes twigs

Tengo un server donde mi repository de git se inició con el argumento –bare.
En el directory de ganchos, tengo un gancho post-recepción:

#!/bin/bash cd /home/git/sureshots.git GIT_WORK_TREE=/home/andrepadez/production/sureshots git checkout -f echo 'branch master deployed to live' 

Solo quiero que el checkout -f ocurra cuando presiono al maestro de la sucursal.

  1. cuando presiono en una twig diferente, mi work_tree no se actualiza pero todavía veo el eco de 'branch master deployed to live'.
  2. Me gustaría tener una configuration diferente para la versión de la twig.

Deseo comprender la viñeta 1 y aprender a hacer la viñeta 2.
He buscado a través de los documentos pero no puedo encontrarle sentido. Gracias

Necesita leer los refs actualizados de stdin y luego desencadenar el enganche cuando el maestro está actualizado. Algo como:

 while read oldrev newrev ref ; do if [ "$ref" == "refs/heads/master" ]; then GIT_WORK_TREE=/home/andrepadez/production/sureshots git checkout -f echo 'branch master deployed to live' fi done 

Actualizar:

Lo siento, no noté que había una pregunta allí. La secuencia de commands post-receive siempre se ejecuta en cualquier inserción, pero el command de verificación solo está comprobando lo que se supone que es el HEAD actual (que es el maestro). Si lo necesita para implementar una twig diferente, entonces necesita modificar el script posterior a la recepción.

Un par de cosas para tener en count aquí. Git es una herramienta de control de versiones, no una herramienta de implementación. Entonces, si bien puedes hacer esto, generalmente no es aconsejable. Puede hacer que esto funcione un poco mejor teniendo una twig de implementación, forzando sus cambios (si es necesario) y haciendo que la secuencia de commands ejecute la twig de implementación. De esta forma, no corrompe al maestro, pero aún tiene cierto control sobre lo que se implementa.

Los documentos de gitolite tienen información interesante sobre el uso de git como una herramienta de implementación , si todavía está convencido de que es adecuado para usted.