O Git tem um recurso muito bom para permitir que você crie seus próprios comandos que se comportam como se fossem parte do git.
Qualquer script que siga esta convenção de nomenclatura git-COMMAND_NAME que está acessível em seu PATH pode então ser acessado no shell como:
git COMMAND_NAME
Adicionar autocompletar a este comando personalizado no Bash é muito simples. O script de autocompletar do Git procurará uma função com o nome do comando como este:
_git_COMMAND_NAME ()
{
# you can return anything here for the autocompletion for example all the branches
__gitcomp_nl "$(__git_refs)"
}
Para mais detalhes, você pode dar uma olhada aqui: https://github.com/git/git/blob/master/contrib/completion/git-completion.bash