Prévenir un git checkout

Prévenir un git checkout

Ne vous est-il jamais arrivé de vous emmêler les pinceaux à force de travailler avec plusieurs terminaux différents, certains connectés sur des serveurs distants différents et d'autres en local ?

Il m'est arrivé de lancer checkout accidentel sur un serveur de production. J'ai immédiatement réagi et modifié mon fichier .bashrc afin d'afficher en rouge le nom du serveur avant chaque commande. Une toute petite chose, simple et efficace.

Forcément, pas si efficace que cela puisque puisqu'à force d'habitudes, on ne fait plus très attention à ce qui est écrit. Du coup, j'ai décidé de verrouiller l'option checkout. Mais git ne fournit pas d'option dans ses configurations pour empêcher celà. J'ai donc simplement décidé d'ajouter un "alias" dans mon fichier .bashrc.

# Prevent to git checkout on prod server
git() {
  if [ "$1" = "checkout" ]; then
    read -r -p "YOU SHALL NOT PASS ! [y/N] " response
    case "$response" in
      [yY])
        ;;
      *)
        return 0
        ;;
    esac
  fi
  $(which git) "$@";
}

Celui-ci vous invitera simplement à confirmer l'action avant de lancer la commande de checkout.