Probé los ejemplos que se encuentran aquí para hacer que la finalización automática de Git funcione en El Capitan, sin embargo, ninguno de los ejemplos funciona para mí.
Lo instalé bash-completion
con Homebrew ( brew install bash-completion
).
Este es mi ~/.bash_profile
actual (como puede ver, he intentado algunas cosas):
CRMPiccosMacBook:etc crmpicco$ cat ~/.bash_profile
alias ll='ls -lG'
alias composer="php /usr/local/bin/composer.phar"
#if [ -f $(brew --prefix)/etc/bash_completion ]; then
# . $(brew --prefix)/etc/bash_completion
#fi
if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi
#source /usr/local/git/contrib/completion/git-completion.bash
#GIT_PS1_SHOWDIRTYSTATE=true
#export PS1='[\u@mbp \w$(__git_ps1)]\$ '
Entonces, si entro en mi directorio con el repositorio de Git clonado y escribo y presiono git checkout m
[TAB], no obtengo nada (cuando espero que se complete master
previamente).
Cuando ejecuto un source
en él, no existe, sin embargo, está instalado.
CRMPiccos-MacBook:signup crmpicco$ brew install bash-completion
Warning: bash-completion-1.3_1 already installed
CRMPiccos-MacBook:signup crmpicco$ source /etc/bash_completion.d/git-completion.bash
-bash: /etc/bash_completion.d/git-completion.bash: No such file or directory
Está confundiendo la finalización básica de bash con el complemento requerido para completar los comandos de git.
El git
instalado por Apple carece del git-completion.bash
archivo requerido, por lo que debe instalar el git completo. Puede hacer esto fácilmente con homebrew: brew install git
hará el trabajo.
Una vez que haya hecho eso, elimine los comentarios de sus tres líneas principales: -
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Ahora source ~/.bash_profile
y debería funcionar bien.
bash-completion
usando homebrew (2) instalar git
usando homebrew. (3) agregue las líneas anteriores a su archivo .bash_profile
. Ahora abra una nueva ventana de Terminal y debería encontrar la finalización de git funcionando.brew install git
resolvió mi problema. Gracias @TonyWilliamsgit version 2.15.0
que la ruta del script de finalización de bash es ligeramente diferente, por lo que`brew --prefix`/git/contrib/completion/git-completion.bash
2.18.0
, el archivo estaba en$(brew --prefix)/etc/bash_completion.d/git-completion.bash
git bash-completion
y luego agregar if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi
a bash_profile.Como nota para los usuarios, como yo, que ya actualizaron a macOS Catalina, que quedó en desuso bash
, pero terminaron en esta respuesta como un resultado superior...
Para macOS Catalina+, que usa zsh
, existen algunos otros requisitos. Descarga ambos scripts:
curl -o git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
curl -o _git https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh
Luego actualice su ~/.zshrc
con:
zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.bash
fpath=(~/.zsh $fpath)
autoload -Uz compinit && compinit
zsh
.bash
. Por lo tanto, una zsh
respuesta pierde el punto de la pregunta.not found: __git_aliased_command
al intentar autocompletar el nombre de la rama: / comandos básicos de autocompletar, por ejemplo, para checkout
trabajos.Habilitar el autocompletado de pestañas de Git para Zsh
Las nuevas Mac usan el shell Zsh de forma predeterminada. Si está utilizando Zsh, agregue la siguiente línea al archivo ~/.zshrc y reinicie su aplicación Terminal:
autoload -Uz compinit && compinit
Alternativamente, puede ejecutar los siguientes dos comandos en su aplicación Terminal para agregar la línea necesaria al archivo .zshrc y reiniciar su shell.
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc
source ~/.zshrc
El autocompletado de pestañas Git ahora está habilitado en su Mac.
Con la ayuda de esta respuesta lo resolví usando estos comandos
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
Luego edité el archivo ejecutándolo vi ~/.zshrc
y le agregué la siguiente parte
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
Luego source ~/.zshrc
ejecuté y las sugerencias de git comenzaron a funcionar correctamente.
ERROR: this script is obsolete, please see git-completion.zsh
Para las personas que usan bash 5, puede instalar el paquete homebrew bash-completion@2
y agregar lo siguiente a su archivo ~/.bash_profile
.
[[ -r "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]] && . "$(brew --prefix)/etc/profile.d/bash_completion.sh"
Esto es lo que funcionó para mí en Sierra. Encontrado aquí .
Después de instalar bash-completion
y agregar el fragmento a su .bash_profile
:
cd /usr/local/etc/bash_completion.d
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion
Mateo Kuraja