En Terminal, ¿cómo puedo configurar una advertencia personalizada para que cuando escriba un comando específico como
git pull origin master
el comando no se ejecuta y aparece un resultado de advertencia como
Did you mean git rebase origin/master?
He considerado crear un script bash o simplemente usar un alias en mi perfil bash, pero no estoy seguro de cuál sería el mejor método.
Gracias.
Respuesta1
No hay ningún gancho para esto pre-pull
, pero puede resultarle útil.https://git-scm.com/docs/githooks#_post_merge
Los ganchos en general son buenos, si no los conocías.
En cuanto al alias, tendría que crear uno para git
, como en crear una función en .bashrc
o .bash_aliases
y verificar si los argumentos son pull origin master, si no, invocar git, de lo contrario imprimir advertencia. O un alias llamado git para un script personalizado; de hecho, un script contenedor para git.
En resumen porque un alias no puede contener espacios, por lo tanto el alias tendría que ser para la primera"palabra"también conocido como comando.
En .bash_aliases
o similares:
mygit()
{
if [ "$1" = "pull" ] && \
[ "$2" = "origin" ] && \
[ "$3" = "master" ]; then
printf 'Did you mean git rebase origin/master?\n' >&2
return 1
else
git "$@"
fi
}
alias git=mygit
O nombre la función git
pero llame a git internamente mediante:
command git "$@"
en lugar de git "@$"
.
Tenga en cuenta también:
Para casi todos los propósitos, se prefieren las funciones de shell a los alias.