Tengo un repository central simple en el que un equipo publica (push) sus commits. En este repository principal, deseo desactivar la eliminación y el cambio de nombre de la label.
¿Hay una solución como un gancho o algo así?
git help hooks
contienen documentation sobre los ganchos. El gancho de update
se invoca cuando Git está a punto de crear / mover / eliminar una reference. Se llama una vez por reference para ser actualizado, y se da:
Si el hook sale con un código de salida distinto de cero, git
no actualizará la reference y el usuario obtendrá un error.
Entonces, para abordar su problema en particular, puede agregar lo siguiente a su gancho de update
:
#!/bin/sh log() { printf '%s\n' "$*"; } error() { log "ERROR: $*" >&2; } fatal() { error "$*"; exit 1; } case $1 in refs/tags/*) [ "$3" != 0000000000000000000000000000000000000000 ] \ || fatal "you're not allowed to delete tags" [ "$2" = 0000000000000000000000000000000000000000 ] \ || fatal "you're not allowed to move tags" ;; esac