Intenté depurar este problema sin éxito durante varios días. He hecho todo lo posible para instalar las terminaciones de git y git en mi máquina, sin embargo, aún no puedo completar automáticamente las twigs (locales o remotas). La finalización de los subcommands de git, sin embargo, funciona bien.
Tengo una Mac corriendo Sierra 10.12.5.
$ sw_vers ProductName: Mac OS X ProductVersion: 10.12.5 BuildVersion: 16F73
Estoy usando bash, instalado a través de Homebrew.
$ brew info bash | head -1 bash: stable 4.4.12 (bottled), HEAD
He instalado git a través de Homebrew.
$ brew info git | head -1 git: stable 2.13.1 (bottled), HEAD
He instalado bash-completion a través de Homebrew.
$ brew info bash-completion | head -1 bash-completion: stable 1.3 (bottled)
He obtenido el script necesario.
$ source $(brew --prefix)/etc/bash_completion
He confirmado que git-completion.bash está de hecho en el directory bash_completion.d.
$ ll /usr/local/etc/bash_completion.d/git-completion.bash lrwxr-xr-x 1 michael 65 Jun 18 02:19 /usr/local/etc/bash_completion.d/git-completion.bash -> ../../Cellar/git/2.13.1/etc/bash_completion.d/git-completion.bash
Cuando uso git, veo el comportamiento correcto de autocomplete cuando bash autocomplete commands.
$ git che{tab} checkout cherry cherry-pick
Sin embargo, las terminaciones del nombre de la sucursal no parecen funcionar en absoluto. En cambio, la autocomplete intenta sugerir otro subcommand
$ git checkout{tab} add annotate apply archive bisect [...list continues]
git sabe sobre las otras twigs de este repository (remoto y local).
$ git branch -a master * foo remotes/origin/HEAD -> origin/master remotes/origin/bar remotes/origin/foo remotes/origin/master
Sin embargo, git no sugerirá otra twig sin importar cuántas letras insinúe.
$ git checkout ma{tab} # => nothing $ git checkout mas{tab} # => nothing $ git checkout mast{tab} # => nothing $ git checkout maste{tab} # => nothing
Esto está sucediendo dentro de cada repository git en mi máquina, en lugar de estar aislado en uno. Tengo los permissions necesarios para leer y escribir en estos repositorys.
He intentado desinstalar / reinstalar git y bash-completion. Intenté tomar el script canónico git-completion.bash de Github directamente y getlo en su lugar. Intenté eliminar todos mis files git dot para descartarlos.
Todas las guías con las que me he encontrado parecen implicar que mis problemas de autocomplete se resolverán descargando el último git-completion.bash (como se relacionó anteriormente) y comprándolo, pero lamentablemente eso no lo está recortando en este caso. Las terminaciones de Bash parecen funcionar normalmente para otras herramientas (por ejemplo, para tmux), por lo que creo que este problema está localizado en las terminaciones de git.
¿Me estoy perdiendo de algo? ¿Qué pasos adicionales debo seguir para activar las terminaciones para los nombres de las sucursales?
El problema es la versión de bash
que estás usando. Los scripts modernos de configuration de finalización de bash requieren un bash
más nuevo que el que Apple envía con macOS. Necesitas a) instalar un nuevo bash
; b) agréguelo a / etc / shells; y c) cambie el shell de su count usando chsh
(o chsh
Sistema> Usuarios y Grupos> desbloquear / autenticar> count con clic derecho> Opciones Avanzadas).