18 Nov 2015

Bloquear push a una branch

Bloquear push a una branch

Git, tiene la posibilidad de ejecutar scripts bajo ciertas acciones.

El uso de estos hooks, permite hacer, desde deployments automaticos, hasta comparativos de archivos para poder llevar un control todavía más detallado del proyecto.

Si (como yo) trabajas con distintos proyectos derivados de un mismo código, es posible que debas evitar hacer un push al master y con un hook lo puedes hacer.Para esto hay que crear un archivo pre-push, en la ruta .git/hooks/ con el siguiente contenido:

#!/bin/bash
protected_branch='master'  
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')

if [ $protected_branch = $current_branch ]  
then  
    read -p "Vas a subir cambios al master, estas seguro? [S|n] " -n$
    echo
    if echo $REPLY | grep -E '^[Ss]$' > /dev/null
    then
        exit 0 # el push procede
    fi
    exit 1 # cancelar el push
else  
    exit 0 # el push procede
fi

Así, al hacer un push, se ejecutará este script que validará que la branch que vamos a subir no sea la que estámos protegiendo.

Quieres saber más de git?
Contáctame: ivan.miranda{arroba}sincco.com

Artículos relacionados