git push non-master a control remoto

Antes de que esto se marque como duplicado, quiero aclarar que después de search en Google y probar cosas por un día sigo donde comencé, por lo que esta pregunta es sobre cómo depurar por qué no obtengo los resultados esperados de otras preguntas similares.

Mi repository tiene una twig de 'desarrollo' y estoy intentando establecer un server de transición al que pueda enviar esta twig para que lo prueben. El server en vivo ya está configurado con un repo al descubierto y un gancho posterior a la recepción para pagar la sucursal principal a la raíz web. Funciona muy bien, así que comencé configurando el server de etapas de la misma manera. Mi problema es que la raíz web en el server de transición siempre obtiene la twig principal.

De acuerdo con lo que he leído, esta es la solución que debería funcionar para mí: la post-recepción es

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

La configuration para mi repository local tiene esto para el control remoto

 [remote "staging"] url = path/to.git push = +develop:master 

La idea es que cuando ejecuto git push staging mi twig de desarrollo local se envía a la twig maestra de remotos y esa twig maestra se comtesting en la raíz web.


Otras cosas que he intentado:

Cuando corresponda, lo he intentado con y sin los indicadores + sy -f.

En caso de que el repository remoto fuera el problema, eliminé el repository remoto y la raíz web y ejecuté git init --bare para comenzar desde cero

Sin la línea de inserción en mi configuration local, cambié el gancho para verificar la twig de desarrollo

 #! /bin/sh GIT_WORK_TREE=/path/to/web/root git checkout -f develop 

Además de ejecutar git push staging develop localmente

Conecté SSH al control remoto y ejecuté GIT_WORK_TREE=/path/to/web/root git checkout -f develop desde el repository simple. Esto dio como resultado el cambio Switched to branch 'develop' , sin embargo, los files en la raíz web todavía reflejan el maestro.

En este punto, o me he perdido algunos pequeños detalles o me estoy volviendo loco. Estoy seguro de que muchas personas tienen la configuration de flujos de trabajo de esta manera, ¿pueden decirme qué me perdí?


Actualizar

Por comentario de @VonCs, agregué el nombre de la twig nuevamente al gancho y configuré localmente a push = +refs/heads/develop:refs/heads/develop . Ahora cuando presiono, mi twig de desarrollo local va a la twig de desarrollo de controles remotos y después de verificar los valores hash con git log , sé que el impulso está funcionando. Sin embargo, si luego ejecuto el git status la devolución es:

 # On branch develop # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: a/file/I/modified/locally 

Entonces el gancho no se está ejecutando correctamente. Si ejecuto el contenido del file hooks / post-receive a través de SSH, se verifica correctamente y mi sitio de ensayo está listo para funcionar. Entonces, ¿cómo puedo determinar por qué el anzuelo no se ejecutará y si está relacionado con el mismo problema?

Para aclarar, mi gancho actualmente se ve así:

 #! /bin/sh GIT_WORK_TREE=/path/to/web/root git checkout -f develop