En mi máquina Linux tengo autocompletar para sucursales con Git.
[Tenga en cuenta que estamos hablando de la finalización de la rama git, no de la finalización de bash (por ejemplo, comandos, archivos, etc.). Por lo tanto, NO la respuesta de Lane en absoluto]
Por ejemplo, puedo escribir git checkout+ TABy obtener una lista de ramas.
O puedo escribir git checkout feb*+ TABpara obtener todas las ramas que comienzan con "feb".
¿Cómo puedo obtener esta funcionalidad en una Mac?
He intentado descargar y ejecutar bash-completion/bash_completiony bash-completion/bash_completion.sh.inpero no alegría. El primero dio mensajes de error sobre declare: -A invalid_option. El segundo no dio errores. Cuando I git checkout+ TABaunque todavía obtengo una lista de archivos en el directorio, no ramas. Estoy en la raíz del proyecto.
El autocompletado para directorios y comandos bash funciona bien, por lo que es específico de Git.
fuente

Modelscarpeta cuando presionémTabpara que se completara automáticamentemaster.source ~/.bash_profiledespués de pegar el código. Reiniciar el terminal también hará lo mismo.gitpero Apple predeterminadogit)brew install gity reinicie el terminal para aquellos que enfrentan un error extraño comogit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]Algunas personas prefieren usar un administrador de paquetes para automatizar la instalación, actualización y configuración de paquetes de Mac OS. Soy fanático de los administradores de paquetes, y creo que Homebrew es el mejor administrador de paquetes para Mac OS (algunos dirían que es el administrador de paquetes de facto de Mac OS).
Una vez que haya instalado Homebrew, simplemente puede instalar git junto con bash-complete con
brew install git bash-completion.Luego deberá poner lo siguiente en su
~/.bash_profile:(Nota: Si esta instalación falla con un error 404, y ya tiene instalado git, simplemente elimine la parte git de esta instalación de preparación)
Más información sobre cómo instalar git y bash-complete con brew aquí.
fuente
gity agregarbash-completionno es lo mismo que agregar.git-completion.bashSon programas diferentes y hacen cosas muy diferentes: uno realiza el autocompletado de comandos bash y el otro hace el autocompletado de comandos git y 'nair the twain se reunirá;)~/.bash_profile?Ejecute esto en la terminal:
Entonces, haz esto:
Agregue estas líneas:
Eso es todo. Esto funcionó para mí.
fuente
~/.bash_profilearchivo no existe. Está bien, solo cree el archivo y coloque eseifscript allí y guárdelo. Vuelva a cargar su shell después y funcionará.gitygit-completion.bashya viene con herramientas de línea de comandos de macOS (xcode-select --install). Para habilitar bash autocompletar, agregue esto a su~/.bash_profile.Esto también habilitará el autocompletado para las ramas de git.
fuente
Esto es lo que confunde a algunos de ustedes: tiene cerveza o puertos instalados, pero está utilizando un git del sistema
/usr/bin/. Para verificar esto:Si ve,
/usr/bin/gitentonces brew no está configurado correctamente o no ha instalado git a través de brew.Si instala git mediante brew, entonces habilitar bash completions para brew también habilitará bash completions para git. Esto se debe a que en
/usr/local/etc/bash_completionrealidad lo contiene todo/usr/local/bash_completion.d, y el paquete de preparación para git instala un script de finalización de git allí.fuente
Puede instalar bash y git desde MacPorts con la opción "bash_completion" habilitada. Es probablemente la forma más fácil de mantener actualizados tanto git como las finalizaciones.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
Para instalar MacPorts: http://www.macports.org/install.php/
información adicional
En cuanto a la ubicación de la configuración de finalización en su sistema Linux, eche un vistazo en /etc/bash_completion.d/git (es un archivo largo). Sin embargo, copiar eso por sí mismo probablemente no funcionará, ya que está diseñado para ser generado por el marco de finalización a través de / etc / bash_completion (que se obtiene de /etc/profile.d/bash_completion.sh; archivos en / etc / profile .d provienen de / etc / profile).
fuente
Si su finalización de git está parcialmente rota, incluso después de la búsqueda
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash, es posible que solo necesite actualizar su versión de git.Por ejemplo, cuando escribí
git check+TAB, se autocompletaría correctamentegit checkout. Pero cuando escribígit checkout+TAB, no mostraba la lista de ramas, soloHEAD.La solución para mí fue actualizar mi
gitversión. Estaba en 2.7.0, que aparentemente no era compatible con la últimagit-completion.bash. Corríbrew upgrade git, que se actualiza a 2.13.0, y ahora se completa automáticamente adecuadamente mis nombres de rama.fuente
brew upgrade gitybrew link git(con la anulación habilitada)updateaupgrade.Con mucho, la mejor referencia que he encontrado para resolver este problema está en SpinDance , de Connor Livingston :
fuente
Lo probé y funciona bien para las ramas, pero cuando haces
git st+tab, muestra el error como esteBuscado en Internet y encontró que
--list-cmdsen.git-completion.bashestaba en la versión más reciente de Git y en mi mac era la versión git2.17.2Aquí están las soluciones.
Solución 1
git --versioncomandoLuego ponga el mismo número de versión en la url que hice
Luego siga los mismos pasos que en la respuesta superior, coloque el siguiente código en
~/.bash_profileSolución 2
Debes intentar actualizar la versión de git a la última y luego debería funcionar.
fuente
Instale oh-my-zsh y configure zsh como su shell predeterminado y agradézcame más tarde :)
fuente
La mayoría de los usuarios se habrán
gitinstalado como parte de las herramientas de línea de comandos de xcode en/usr/bin/gity las reglas de finalización de bash para git estarán disponibles en/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash.En este caso, no es necesario instalar git desde Homebrew o las reglas de finalización de git de origen desde raw.githubusercontent.com. Simplemente cree un enlace simbólico de la siguiente manera:
Nota: asegúrese de haber instalado y configurado el
bash-completionpaquete de Homebrew.fuente
Localiza tu
.bashrcarchivo.Ábrelo y agrega esta línea en la parte inferior:
source /etc/bash_completion.d/gitfuente
/etc/bash_completion.d/carpeta, en un sistema relativamente nuevo (OSX 10.10.3)./etc/bash_completion.d/git? Haría que su respuesta sea más valiosa.