Error de producción de .git-completar.bash en macOS Sierra 10.12.6


40

He seguido el proceso git-completionsegún la descripción proporcionada en https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a :

El primer paso es ejecutar este comando en la ventana de su terminal, esto es básicamente tomar el script 'git-completar.bash' y ponerlo en su directorio de inicio.

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

Ahora agregue esta línea a su '~ / .bash_profile'. Esto permitirá la ejecución de la secuencia de comandos de autocompletar git si está presente

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi

Ahora puede reiniciar todas sus ventanas de terminal o simplemente actualizar la ventana de terminal en la que desea utilizar este script. Para actualizar, haga lo siguiente:

source ~/.bash_profile

El siguiente es el error que obtengo al tabpresionar la tecla después de escribir git:

unknown 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>]

¿Qué versión de git estás usando y qué versión pide bash_completion?
user151019

git version 2.17.1
Rishi Kulshreshtha

Estoy obteniendo lo mismo en Mac y Ubuntu también. git versiones 2.4.7 y 2.17.
wisbucky

Respuestas:


55

Me encontré exactamente con el mismo problema. Después de investigar un poco, finalmente descubrí cuál es el problema raíz.

Ellos hicieron algunos cambios importantes en el git-completion.bashscript que requiere una nueva característica en v2.18 git, --list-cmds. El problema es que ninguno de los administradores de paquetes se ha actualizado a git v2.18 todavía.

La mayoría de las instrucciones por ahí dicen que descargue raw.githubusercontent.com/git/git/ master/contrib/completion/git-completion.bash. Pero esa no es necesariamente la mejor opción porque a veces descargará una git-completion.bashversión más nueva de la que admite su versión de git.

Entonces, la solución es descargar la git-completion.bashversión que coincida con su versión de git. Luego búscalo de nuevo. En este caso:

https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash

Observe que hace referencia en v2.17.1lugar de master. Más tarde, cuando instale git v2.18, puede volver a cambiar mastero v2.18etiquetar.


2
¡¡Gracias una tonelada!! Estaba buscando una solución similar, ya que recuerdo que git-completion.bashestaba funcionando antes.
Rishi Kulshreshtha

2
Fan-bloody-tastic
bhu Boue vidya

Esto resuelve el problema del seguimiento de versiones - stackoverflow.com/a/18898614/1874627
saurabheights

3

Actualizar el git a la última versión es la solución más simple. https://git-scm.com/download/mac

Después de eso, asegúrese de seguir los pasos.

  1. curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

  2. Agregue este pequeño comando al .bash_profilearchivo if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi


2

No lo construyas desde la fuente; en su lugar instale desde MacPorts .

Para instalar git con autocompletado, emita el siguiente comando:

 $ sudo port install git +bash_completion

cierra y vuelve a abrir tu Terminal y la finalización de git debería funcionar


He intentado esto pero no resolví el problema. Sigue siendo lo mismo.
Rishi Kulshreshtha

Emita este comando: sudo find / -type -name "git-completion.bash"y publique los resultados a su pregunta.
Allan

1

Debe verificar su versión de git y asegurarse de que esté actualizada al menos a 1.8.

Tenía una versión anterior 1.7.11 pero no funcionó y obtuve el mismo error que usted tiene.


git version 2.17.1
Rishi Kulshreshtha

0

Si usa Homebrew, es posible que desee

  1. actualizar git:

    brew upgrade git

  2. fuente el git-completar.bash instalado en su ~/.bash_profile:

    . /usr/local/etc/bash_completion.d/git-completion.bash

Esto asegura que las versiones de script de git y finalización instaladas coincidan.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.