¿Cómo hacer que git-completion.bash funcione en Mac OS X?

¿Cómo hacer que git-completion.bash funcione en Mac OS X?

he seguidohttp://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live- withoutpara agregar git-completion.basha mi/opt/local/etc/bash_completion.d/git-completion

y puse PS1='\h:\W$(__git_ps1 "(%s)") \u\$ 'mi .bashrc_profile

Pero ahora entiendo -bash: __git_ps1: command not foundtodo lo que hago cd.

¿Puedes decirme qué me falta?

Respuesta1

Instalé git usandoPuertos Macen mi nueva instalación de Snow Leopard. Después de instalar MacPorts desde la imagen .dmg, estos serían los comandos en Terminal.app:

sudo port selfupdate
sudo port install git-core +bash_completion

Si también desea obtener soporte para extraer documentos y repositorios SVN, use esto en lugar de la segunda línea:

sudo port install git-core +bash_completion +doc +svn

Luego agregue lo siguiente a su ~/.profile o ~/.bash_profile:

# Finalización del comando de shell MacPorts Bash
si [ -f /opt/local/etc/bash_completion ]; entonces
    . /opt/local/etc/bash_completion
fi

o para MacPorts desde la versión 2.1.2 en Mountain Lion:

# Finalización del comando de shell MacPorts Bash
si [ -f /opt/local/etc/profile.d/bash_completion.sh ]; entonces
  . /opt/local/etc/profile.d/bash_completion.sh
fi

o para MacPorts con versiones más nuevas de git:

si [ -f /opt/local/share/git-core/git-prompt.sh ]; entonces
    . /opt/local/share/git-core/git-prompt.sh
fi

Nota: bash_completion.sh requiere bash 4.1 o superior. Si la finalización no funciona, intente echo $BASH_VERSIONver si ese es el problema. Si es así, ingresa a MacPorts bash escribiendo bashe intenta completar git nuevamente.

Respuesta2

Si instaló git usando homebrew, puede ajustar un poco el consejo de MacPorts y agregarlo a su .bash_profiley.bashrc

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

La mejor manera de comprobar si tienes git instalado correctamente usando homebrew es para ejecutar

brew info git

y verifique la salida para el directorio de instalación de la finalización de git bash

La última versión de Git (1.7.12) también requiere lo siguiente para habilitar el mensaje.

if [ -f `brew --prefix`/etc/bash_completion.d/git-prompt.sh ]; then
    . `brew --prefix`/etc/bash_completion.d/git-prompt.sh
fi

Respuesta3

Todo lo que necesita hacer es colocar el git-completion.basharchivo en su bindirectorio de inicio de usuario y colocar lo siguiente en su .profilearchivo .bash_profile:

export PATH="$HOME/bin:$PATH"
source ~/bin/git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '

Lo que esto hace es asegurarse de que su contenedor local esté en la RUTA y el sourcecomando pone todo en marcha. Luego, por supuesto, el cambio de PS1 coloca la rama actualmente desprotegida en el mensaje.

Por lo tanto, no es necesario instalar MacPort para luego instalar la versión "completada" de GIT (especialmente irritante si ya la tiene instalada).

Respuesta4

Necesita obtener las funciones de finalización de comandos. Agregue a su .bashrc_profile antes de la PS1:

. /opt/local/etc/bash_completion.d/git-completion

información relacionada