Cómo crear una advertencia CLI personalizada

Cómo crear una advertencia CLI personalizada

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 .bashrco .bash_aliasesy 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_aliaseso 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 gitpero 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.

información relacionada