2012-06-23 8 views
26

Tengo Git (versión 1.7.2.5) bash compeletion trabajando en mi Debian squeeze (6.0). Git se instaló con aptitude y estoy usando Debian estándar bash, que es compatible con la autocompletación de la línea de comandos.¿Cómo puedo configurar el autocompletado para los comandos de Git?

Ahora, acabo de instalar Git (1.5.6.5) en otra máquina (Lenny/Debian 5.0) y no hay autocompletado.

  1. ¿Por qué Git autocompletar no funciona en la segunda máquina? ¿Cómo diagnostico esto?

  2. ¿Qué está haciendo que la finalización funcione en mi máquina? He buscado el archivo git-completion.bash pero no parece estar en mi máquina. ¿Cómo funciona Git alguna vez funciona?

  3. ¿Cómo puedo llevar el git completo a la otra máquina?

+0

Este * puede * ser la pregunta más adecuada, ya sea para [serverfault.com] (http://serverfault.com) o [unix.stackexchange.com] (http : //unix.stackexchange.com) – poncha

+0

Asegúrese de haber compilado git con autocompletado si compiló desde el origen. También asegúrese de estar utilizando el mismo shell que en su máquina anterior y de que es compatible con la finalización automática. Como puede ver, no estoy seguro de qué lo está causando, dejándolo como un comentario. Es probable que su caparazón no proporcione la terminación o que no instale la terminación correctamente. Buena suerte. –

+0

@poncha gracias. Volveré a publicar en unix.stackexchange.com – redochka

Respuesta

26

Necesita source /etc/bash_completion.d/git para habilitar la autocompletacion de git.

En mi .bashrc se hace con:

for file in /etc/bash_completion.d/* ; do 
    source "$file" 
done 
+2

Esto no funcionó para mí, ya que algunos de los scripts de finalización dentro de '/ etc/bash_completion.d /' usaban funciones auxiliares definidas en 'bash_completion'. – joelpet

+0

Esto funciona para CentOS 7 ya que no hay un archivo '/ etc/bash_completion'. – Walf

38

Poner las siguientes líneas en su ~/.bashrc

if [ -f /etc/bash_completion ]; then 
    . /etc/bash_completion 
fi 

El script/programa /etc/bash_completion ya incluye los scripts en /etc/bash_completion.d y también define algunas de las funciones que necesita los scripts incluidos.

+2

En mi sistema Fedora 20, 'bash_completion' se encuentra en'/usr/share/bash-completion/'. Ejecutando 'updatedb && locate bash_completion' debería ayudarlo a encontrarlo. – joelpet

+1

Esto también resolvió mi problema de "no comando" ha "encontrado". La función "tener" se define en/etc/bash_completion, y muchos scripts en /etc/bash_completion.d/ dependen de ello. – jdunk

11

El camino más corto para activar la fiesta de finalización automática de Git en Debian es añadir

source /etc/bash_completion.d/git 

a la ~/.bashrc (y reiniciar el terminal).

Vea también aquí: "Pro Git" -> 2.7 Principios básicos de Git - Consejos y trucos ->Auto-Completion.

0

Utilice Notepad ++ para editar su archivo ~/.bashrc. Ponga la línea en la parte inferior del script con un # al comienzo de la línea. Guarda el archivo. Por ejemplo: # fuente C: \ cygwin64/etc/bash_completion.d/git

No olvide poner toda la ruta del archivo después de 'fuente' y delante de '/ etc /' Por ejemplo, mi cygwin64 carpeta que contiene la carpeta 'etc' está en mi unidad C por lo que mi ruta del archivo es c: \ cygwin64/etc por lo tanto, la línea que incluí en mi bashrc es:

# source c:\cygwin64/etc/bash_completion.d/git 

Guardar archivo .bashrc. Abre Cygwin Terminal ... ¡Boom! Es tiempo de irse. Luego ingresé el siguiente comando y funcionó. git clone git:\/\/github.com/magnumripper/JohnTheRipper -b bleeding-jumbo JtR-Bleeding

+3

la pregunta es sobre debian, no windows – oromoiluig

7

Necesita instalar este paquete si falta. Y luego cierre la sesión e inicie sesión.

apt-get install bash-completion 
0

En ocasiones, la autocompletación de git desaparece porque borró accidentalmente su archivo ~/.bashrc. Compruebe si el archivo bashrc está allí en su directorio de inicio.Si no, siempre se puede copiar desde:

/etc/skel/.bashrc 
Cuestiones relacionadas