Isso é necessário por design. Quando você está executando um git-pull
, o nome da ramificação que você está obtendo é uma ramificação remota. Não tem outra opção senão entrar em contato com o repositório remoto para obter a lista de possíveis conclusões.
Você pode provar isso para si mesmo se tentar concluir automaticamente um comando git-push
. A conclusão do nome da ramificação master
será muito mais rápida porque você está enviando uma ramificação local, portanto, não será necessário entrar em contato com o repositório remoto.
Se você quiser que o preenchimento automático sempre seja concluído usando nomes de ramificação local, você poderá alterar o comportamento. Isso pode ser útil apenas se os nomes das ramificações locais forem idênticos aos nomes das ramificações remotas. Edite o arquivo ~/.git-completion.bash
e, na linha 458, procure este código:
fetch)
if [ $lhs = 1 ]; then
__gitcomp "$(__git_refs2 "$remote")" "$pfx" "$cur"
else
__gitcomp "$(__git_refs)" "$pfx" "$cur"
fi
;;
pull)
if [ $lhs = 1 ]; then
__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"
else
__gitcomp "$(__git_refs)" "$pfx" "$cur"
fi
;;
push)
if [ $lhs = 1 ]; then
__gitcomp "$(__git_refs)" "$pfx" "$cur"
else
__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"
fi
;;
esac
... e mude para isso:
fetch)
if [ $lhs = 1 ]; then
__gitcomp "$(__git_refs)" "$pfx" "$cur"
else
__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"
fi
;;
pull)
if [ $lhs = 1 ]; then
__gitcomp "$(__git_refs)" "$pfx" "$cur"
else
__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"
fi
;;
push)
if [ $lhs = 1 ]; then
__gitcomp "$(__git_refs)" "$pfx" "$cur"
else
__gitcomp "$(__git_refs "$remote")" "$pfx" "$cur"
fi
;;
esac
(Observe que alteramos as seções "fetch" e "pull" para usar a mesma lógica de "push". Isso significa que ele estará procurando nomes de ramificações locais em vez de ramificações remotas.)