Cuando uso el git de OSX, después de modificar un archivo, simplemente puedo hacer git commit <tab>
, y eso completará automáticamente el nombre del archivo al que se modificó. Sin embargo, si instalo una versión más nueva de git de homebrew y la uso, esa característica ya no funciona (lo que significa que presiono <tab>
y simplemente me "pregunta" en qué archivo quiero hacerlo, incluso los que no tienen cambios )
¿Alguien puede arrojar algo de luz sobre por qué y cómo resolver eso? Prefiero usar el git de homebrew, ya que está más actualizado.
Mi shell es zsh, y ni la instalación bash-completion
ni el zsh-completions
trabajo (incluso después de seguir las instrucciones posteriores a la instalación de homebrew).
Además, después de instalar git con homebrew dice
Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions
Entonces, ¿no debería poder usar uno de esos?
fuente
zsh
ygit
estás usando?git
Funcionan otras terminaciones (git co<TAB>
==>git commit
, por ejemplo)?zsh-completions
no estaba contento con el mac git, aunque funcionó bien antes (posiblemente actualizado a ciegas a 0.17.x).Respuestas:
Estas buscando:
Como dice el comentario de warpc, deberás agregar lo siguiente a tu
~/.bash_profile
para que funcione bash-complete de homebrew:Lo anterior se menciona en las advertencias cuando instala la fórmula de finalización de bash.
Nota: si está usando Bash v4 o posterior (vía
brew install bash
), entonces querrá usarlobrew install bash-completion@2
, para habilitar la finalización de pestañas agregue lo siguiente~/.bash_profile
como se describe en las advertencias:La exportación adicional es necesaria para git, docker, youtube-dl y otras finalizaciones que pueden incluirse en el
$(brew --prefix)/etc/bash_completion.d/
directorio.fuente
brew install git zsh-completions
? Además, después de instalar git con homebrew, diceBash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions
, ¿no podría usar uno de esos?bash-completion
nizsh-completions
trabajar (incluso después de seguir las instrucciones de homebrew después de la instalación).La finalización de esta pestaña git de Get funciona en OSX sin tener que reiniciar su terminal:
fuente
&&
. Cualquier script bash podría ser de una sola línea como esa.brew install
método. Simplemente porque funciona.En caso de que alguien más cometa mi tonto error, inténtalo
brew install git
. Estaba usando elgit
que viene con Xcode y no me di cuenta de que nunca había instalado el git de Homebrew para obtener los autocompletados.fuente
por alguna razón me faltaba el archivo,
$(brew --prefix)/etc/bash_completion
así que la respuesta correcta de @Graham Perks no funcionó para míTerminó la solución en mi caso fue:
fuente
Resolví el problema descubriendo que
$(brew --prefix)/etc/bash_completion
regresabaPermission denied
cuando se ejecutaba. Entonces, después de un simple:Todo ahora está funcionando bien. Sin embargo, me pregunto por qué Homebrew no hace que el
bash_completion
archivo sea ejecutable en la instalación.fuente
bash_completion
está destinado a sersource
'd para que las definiciones estén en su shell; la ejecución no tendrá efecto.Encontró una solución de trabajo. Es muy reciente (creado hace 16 horas y comprometido hace 2 horas), y viene directamente de homebrew .
brew install git --without-completions
Solo lo probé, y finalmente funciona según lo previsto.
fuente
git
sin finalización podría mejorar la situación de finalización que no funciona. Creo que la respuesta de Graham Perks stackoverflow.com/a/14970926/1199564 debe marcarse como la respuesta correcta.git --without-completions
y obtener elbash-completion.bash
archivo de lo.bash_profile
que probablemente se anule siguiendo el procedimiento estándar.brew install git
solucionó todo (no es necesario para --with-completions). Creo que esta también es una respuesta correcta.Tuve el mismo problema e incluso encontré esta publicación esta mañana. Solucioné el problema actualizando brew with
brew update
y luego reinstalando git withbrew reinstall git
.Luego me notificaron de otro archivo que está bloqueando el proceso de vinculación homebrew, en mi caso lo fue
/usr/local/share/zsh/site-functions/git-completion.bash
. Eliminar el archivo y ejecutarlobrew link git
resolvió el problema. Supongo que era solo una mala versión de la receta con la que nos topamos.fuente
git --version
brew reinstall git
y tambiénbrew reinstall bash-completion
hacerlo funcionar de nuevo.Si tiene
$BASH_VERSION
<4.1, por ejemplo3.2.57(1)-release
, continúe con:Sin embargo, si tiene que
brew install bash
obtener la versión4.4.12(1)-release
, puede usar las terminaciones mejores y más completas en:Tenga en cuenta que algunos paquetes (brew, docker, tmux) aún incluirán algunas terminaciones, por
$(brew --prefix)/etc/bash_completion.d/
lo que puede agregar:Finalmente, debería poder agregar el script de finalización de git si por alguna razón la forma en que instaló git no lo agregó a ninguno de esos:
Puede obtenerlo y agregarlo con lo anterior.
fuente
Paso 1: descargue el script de finalización automática:
Paso 2: Actualice .bash_profile y .bashrc
Vía https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
Si lo anterior no funciona, intente https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
fuente
Para mí, tuve que poner
en
.bashrc
(no .bash_profile) para que esto funcione.".bash_profile se ejecuta para shells de inicio de sesión, mientras que .bashrc se ejecuta para shells interactivos sin inicio de sesión" - de ¿Cuál es la diferencia entre .bash_profile y .bashrc? Me parece que MacOS Sierra no se ejecuta
.bash_profile
al abrir una nueva ventana de terminal, solo.bashrc
.No lo pondría en _bash_profile, porque luego tendría que reiniciar / cerrar sesión para que las actualizaciones surtan efecto.
fuente
Esto funcionó para mí en Mojave (OSX 10.14.1):
Luego agregue la siguiente línea a su ~ / .bash_profile:
fuente
En 2019, usando Bash v5, no necesita obtener explícitamente el script de finalización de git bash en su
.bash_profile
o.bashrc
.bashrc
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
) y guárdelo/usr/local/etc/bash_completion.d/
comogit
¡Eso es! Bash recogerá automáticamente el archivo de finalización de git y habilitará la finalización.
Nota al margen: recomiendo incluir todos estos cambios,
.bashrc
ya que esto garantiza que cuando caiga en un shell interactivo (es decir, desdepipenv shell
), las terminaciones se cargarán correctamente ya que bash generará.bashrc
y NO.bash_profile
.fuente
Puede tener algo que ver con el uso de libedit en lugar de readline en Lion.
Intenta instalar readline antes de git.
fuente
Para aquellos que ya tienen instalado brew-bash-complete. No tenía el script de finalización de git instalado y no pude encontrar ningún toque para eso.
Entonces lo agregué manualmente:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
Tenga en cuenta que debe cambiar el nombre del archivo y eliminar la extensión para que funcione.
Si no tiene completado o git instalado, instálelo en la respuesta aceptada.
brew install git bash-completion
fuente
Si usó homebrew para instalar git, entonces probablemente no haya necesidad de instalar nada para admitir la finalización de git. El archivo "git-completar.bash" está en alguna parte (el mío estaba aquí: /usr/local/git/contrib/completion/git-completion.bash)
Todo lo que necesita hacer es encontrar el archivo: sudo find / -type f -name "git-completar.bash"
Luego busca su ruta en tu .bash_profile. Por ejemplo, necesitaba agregar esta línea a mi ~ / .bash_profile:
No olvides buscar tu ~ / .bash_profile o volver a abrir tu terminal;)
de: how-enable-git-tab-complete-bash-mac-os-x
fuente
Sé que esta es una publicación anterior, pero realmente no necesita instalar ningún paquete adicional.
Homebrew te informa que hay un directorio con todo lo que necesitas.
Simplemente puede agregar la siguiente línea a su
.bash_profile
si está utilizando Bash:fuente
Habilite la finalización automática de comandos GIT en MAC-OS Mojave 10.14 Soy desarrollador y uso GIT desde la línea de comandos todo el tiempo. Cuando considero la perspectiva del desarrollo, solía ejecutar muchos comandos usando la línea de comandos para las operaciones GIT. La mayoría de las veces es muy molesto que MAC OS no tenga soporte automático para la finalización de comandos, lo que apoyo parcialmente. así como las sugerencias de comandos, lo que significa cuáles son los comandos disponibles para los caracteres escritos. Por lo tanto, es muy problemático escribir un comando muy largo y una tarea principalmente repetitiva, ya que el error tipográfico falla. :(
La finalización de la pestaña ciertamente sería más rápida y fácil. Desafortunadamente, la instalación predeterminada de git en algunas computadoras Mac no tiene habilitada la finalización de pestañas.
De modo que estaba buscando una solución para el problema y hay varias soluciones encontradas en la búsqueda web, como StackOverflow, GitHub y del medio. Desafortunadamente, esas soluciones no funcionaron para mí y se frustraron al probar diferentes soluciones tantas veces.
Estaba buscando profundamente y probando diferentes soluciones y, afortunadamente, es una solución fácil. A continuación se detallan los pasos que he recopilado de varias publicaciones y finalmente funcionó como se esperaba. Así que espero compartir con otros que tienen este problema como yo.
Si va a la búsqueda web y puede encontrar muchas soluciones que mencionan el archivo bash de finalización de git. Incluso la guía de GitHub también. Pero le sugiero que compruebe primero si el archivo git-completar.bash ya está en su computadora MAC con el git-core o algo más que vino de la instalación. Puedes usar el siguiente comando.
obtendrá los siguientes resultados. (puede tener alguna diferencia según el contenido)
Te sugiero que elijas qué instalado desde git-core
Si el script git-completar.bash no existe en su máquina, recupérelo de lo que se proporciona a continuación y guárdelo en su máquina local en un nuevo archivo llamado git-completar.bash en / usr / local / etc / bash_completion.d / directorio.
https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Si usa el shell Bash, Git viene con un buen script de autocompletado que puede habilitar. Descárguelo directamente del código fuente de Git en
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Si el script git-completar.bash existe en su máquina, pero no está en el directorio /usr/local/etc/bash_completion.d/, debe crear ese directorio y copiar el archivo en él. El siguiente comando hará el trabajo:
Después de completar lo anterior. El script git-completar.bash debería existir en su máquina local en el directorio / usr / local / etc / bash_completion.d /.
Ahora necesita actualizar su perfil con el siguiente comando. Cargará el archivo bash agregado en el contexto del terminal.
¡¡¡Excelente!!! lo has hecho. Simplemente inicie la ventana de terminal y pruébelo. Simplemente escriba "git sta", mostrará las sugerencias a continuación:
mira mi publicación de GitHub aquí:
https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave
Vea mi publicación de Medium aquí:
https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14
fuente