Pregunta Encuentra el nombre de la rama de Git en el enlace posterior a la actualización [duplicado]


Esta pregunta ya tiene una respuesta aquí:

Estoy ejecutando un programa para alertar a CruiseControl cada vez que se envía una actualización a nuestro repositorio remoto. Estoy usando un gancho post-actualización de Git para esto.

Sería genial si pudiera averiguar qué rama se había comprometido, así que podría usar eso para informar a CruiseControl qué rama construir. ¿Hay alguna forma de acceder al nombre de la sucursal dentro de un enlace posterior a la actualización?


32
2017-09-07 09:25


origen


Respuestas:


El primer parámetro para el enlace posterior a la actualización es la referencia de bifurcación en su totalidad, por ejemplo, veo 'refs / heads / master' para un push a 'origin master'. Entonces, un script de anzuelo de ejemplo que solo imprime la rama modificada es:

#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref $1)
echo Update pushed to branch $branch
exec git update-server-info

Para ilustrar, cuando lo anterior se coloca en los archivos de anzuelos / actualizaciones posteriores del repositorio, se imprime lo siguiente al realizar una inserción:

% git push origin master
Counting objects: 5, done
Writing objects: 100% (3/3), 247 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
remote: Update pushed to branch master
To /tmp/xx/a
    e02d9cd..ab14a08  master -> master

La nueva línea que comienza con 'remote:' fue emitida por nuestro script hook.


44
2017-09-07 10:21