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_completion
y bash-completion/bash_completion.sh.in
pero 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
Models
carpeta cuando presioném
Tab
para que se completara automáticamentemaster
.source ~/.bash_profile
después de pegar el código. Reiniciar el terminal también hará lo mismo.git
pero Apple predeterminadogit
)brew install git
y 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
git
y agregarbash-completion
no es lo mismo que agregar.git-completion.bash
Son 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_profile
archivo no existe. Está bien, solo cree el archivo y coloque eseif
script allí y guárdelo. Vuelva a cargar su shell después y funcionará.git
ygit-completion.bash
ya 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/git
entonces 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_completion
realidad 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
git
versió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 git
ybrew link git
(con la anulación habilitada)update
aupgrade
.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-cmds
en.git-completion.bash
estaba en la versión más reciente de Git y en mi mac era la versión git2.17.2
Aquí están las soluciones.
Solución 1
git --version
comandoLuego 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_profile
Solució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
git
instalado como parte de las herramientas de línea de comandos de xcode en/usr/bin/git
y 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-completion
paquete de Homebrew.fuente
Localiza tu
.bashrc
archivo.Ábrelo y agrega esta línea en la parte inferior:
source /etc/bash_completion.d/git
fuente
/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.