No Terminal, como posso configurar um aviso personalizado para que quando eu digitar um comando específico como
git pull origin master
o comando não é executado e recebo uma saída de aviso como
Did you mean git rebase origin/master?
Pensei em criar um script bash ou simplesmente usar um alias em meu perfil bash, mas não tenho certeza de qual seria o melhor método.
Obrigado.
Responder1
Não há ganchos, pre-pull
mas você pode achar isso útilhttps://git-scm.com/docs/githooks#_post_merge
Ganchos em geral são bons, se você não os conhece.
Quanto ao alias você teria que criar um for git
, como em criar uma função em .bashrc
ou .bash_aliases
e verificar se os argumentos são pull origin master, se não invocar git, senão imprimir aviso. Ou um alias chamado git para um script personalizado - na verdade, um script wrapper para git.
Resumindo, porque um alias não pode conter espaços, portanto o alias teria que ser para o primeiro"palavra"também conhecido como comando.
Em .bash_aliases
ou algo parecido:
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
Ou nomeie a função, git
mas chame o git internamente por:
command git "$@"
em vez de git "@$"
.
Observe também:
Para quase todos os propósitos, as funções shell são preferidas aos aliases.