mac info custom macos git terminal ps1

macos - info - mac os terminal show git branch



(Mac)-bash:__git_ps1: comando no encontrado (17)

Solución para MacOS Sierra y git versión 2.10.1 <2017-2-06>

Paso 1: Instala el Git

Puede omitir este paso si ya instaló el último git.

Descargue el paquete git desde el navegador https://git-scm.com/download/

Nota: si instala con curl [option] https://... opción para descargar, debería asegurarse de que su sistema sea compatible con SSL. Entonces, para los recién llegados, descargar desde el navegador e instalar directamente desde el instalador de git es mucho más fácil.

Verificación de la instalación:
  • Muestra dónde está tu directorio git en: which git
  • Muestra qué versión de tu git actualmente es: git --version la versión actual debería ser 2.10.1.

Paso 2: Agrega tu perfil de git a tu shell

  1. Abra su perfil de shell:
    • nano ~/.bash_profile o nano ~/.bashrc Depende de dónde se encuentre su modificación.
  2. Agregue el siguiente código al archivo:
    • source /usr/local/git/contrib/completion/git-completion.bash
    • source /usr/local/git/contrib/completion/git-prompt.sh

Nota: la ubicación de instalación de git cambió de opt / directory a usr / local / después de la actualización de OSX a El Capitain, y es por eso que algunas de las respuestas anteriores ya no funcionan en MacOS Sierra.

  1. Agregue el siguiente código a su configuración de PS1:

    • Opción 1: agregar directamente a tu PS1: export PS1=''/w$(__git_ps1 "(%s)") > ''

      Prefiero este enfoque simple porque ya sé que .git-completion.bash está en mi directorio de inicio, y puedo agregar otro formato de solicitud en la parte frontal. Aquí está mi indicador personal para su referencia: export PS1=''/t H#/! /u:/w$(__git_ps1 "{%s}") -->> '' export PS1=''/t H#/! /u:/w$(__git_ps1 "{%s}") -->> ''
    • Opción 2: Añadir un script de selección

    if [ -f ~/.git-completion.bash ]; then export PS1=''/w$(__git_ps1 "(%s)") > '' fi

  2. Guarde y use el perfil: source ~/.bash_profile o source ~/.bashrc

Ahora deberías ver el indicador de git funcionando correctamente y muestra en qué rama estás ahora.

Estoy tratando de cambiar mi comando en la terminal. Sigo recibiendo el error:

-bash: __git_ps1: command not found

Lo he intentado simplemente escribiéndolo en el terminal tal como está: __git_ps1 . También lo he probado en el .bash_profile

if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1=''[/W]$(__git_ps1 "(%s)"): '' fi

Como puede ver / decir, sí, tengo la función de autocompletado instalada y ¡funciona muy bien!

Me encontré con esta pregunta: " PS1 env variable no funciona en mac ", que da el código

alias __git_ps1="git branch 2>/dev/null | grep ''*'' | sed ''s/* /(.*/)/(/1)/''"

Así que lo agrego a mi .bash_profile con la esperanza de que cambie algo. Bueno, lo hizo. Acaba de cambiar la salida de error.

Aquí está el .bash_profile con la adición:

alias __git_ps1="git branch 2>/dev/null | grep ''*'' | sed ''s/* /(.*/)/(/1)/''" if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1=''[/W]$(__git_ps1 "(%s)"): '' fi

Y ahora aquí está la salida de error cambiado:

sed: (%s): No such file or directory

Nota: También he movido el alias debajo de la fuente sin diferencia. Tengo git version 1.7.12.1

Esto debería ser un simple cambio. ¿Puede alguien ayudarme por favor?

Editar 10/13/12

No, definitivamente no quiero definir __git_ps1 a mí mismo, pero solo estaba tratando de ver si se reconocería al hacerlo. Sí, tengo el archivo .git-completion.bash instalado. Así es como llegué a la finalización automática en mi máquina.

cd ~ curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash mv ~/git.completion.bash ~/.git-completion.bash

A continuación, ls -la muestra el archivo .git-completion.bash .

Edición 10/13/12 - resuelto por Mark Longair (abajo)

El siguiente código funcionó para mí en el .bash_profile mientras que otros no lo hicieron ...

if [ -f ~/.git-prompt.sh ]; then source ~/.git-prompt.sh export PS1=''Geoff[/W]$(__git_ps1 "(%s)"): '' fi


  1. Descargue los archivos git-prompt.sh y git-completed.bash desde esta finalización de Git
  2. Renombra los archivos.
  3. Mueva esos archivos a su directorio de inicio.
  4. Agregue el archivo fuente al .bash_profile

    source ~/git-completion0.bash source ~/git-prompt0.sh and four to trigger the code block.


¡Solución High Sierra limpia con colores!

No hay descargas. Sin cerveza Sin Xcode

Solo agréguelo a su ~ / .bashrc o ~ / .bash_profile

export CLICOLOR=1 [ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh export GIT_PS1_SHOWCOLORHINTS=1 export GIT_PS1_SHOWDIRTYSTATE=1 export GIT_PS1_SHOWUPSTREAM="auto" PROMPT_COMMAND=''__git_ps1 "/h:/W /u" "///$ "''


Al menos con Xcode 6, ya tienes git-completion.bash . Está dentro del paquete de aplicaciones Xcode.

Solo agrega esto a tu .bashrc:

source `xcode-select -p`/usr/share/git-core/git-completion.bash


Debieras

$ brew install bash bash-completed git

Luego fuente "$ (brew --prefix) / etc / bash_completion" en tu .bashrc.


Después de actualizar a OSX 10.9 Mavericks tuve que hacer referencia a los siguientes archivos para obtener la finalización del comando git shell y el indicador de git para que funcionara de nuevo.

Desde mi .bash_profile o similar:

if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash ]; then . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash fi source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh #shell prompt example PS1=''/u $(__git_ps1 "(%s)")/$ ''


Estaba haciendo el curso en Udacity para git hub y tenía este mismo problema. Aquí está mi código final que hace que funcione correctamente.

# Change command prompt alias __git_ps1="git branch 2>/dev/null | grep ''*'' | sed ''s/* / . (.*/)/(/1)/''" if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1=''[/W]$(__git_ps1 "(%s)"): '' fi source ~/.git-prompt.sh export GIT_PS1_SHOWDIRTYSTATE=1 # ''/u'' adds the name of the current user to the prompt # ''/$(__git_ps1)'' adds git-related stuff # ''/W'' adds the name of the current directory export PS1="$purple/u$green/$(__git_ps1)$blue /W $ $reset"

¡Funciona! https://i.stack.imgur.com/d0lvb.jpg


Este funcionó para mí, y tiene una salida de color de git y un indicador en el mensaje de si los archivos han cambiado / han sido agregados, directamente al horno:

GIT_PS1_SHOWDIRTYSTATE=true . /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-completion.bash . /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-prompt.sh PS1=''/[/033[32m/]/u@/h/[/033[00m/]:/[/033[34m/]/w/[/033[31m/]$(__git_ps1)/[/033[00m/]/$ ''

¡Asegúrate de usar el camino correcto! Usé homebrew para instalar git, usar brew list git para obtener la ruta de acceso a tu instalación actual.

Sería bueno no usar una ruta codificada, pero no sé cómo obtener la ruta a la instalación actual.

Más información aquí: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/


Ha instalado la versión de git-completion.bash desde el master : en el historial de desarrollo de git esto __git_ps1 después de un compromiso que dividió la función __git_ps1 funcionalidad de finalización en un nuevo archivo ( git-prompt.sh ). El compromiso que introdujo este cambio, que explica la lógica, es af31a456 .

Todavía le sugiero que simplemente git-prompt.sh la versión de git-completion.bash (o git-prompt.sh ) que se incluye con su instalación de git.

Sin embargo, si por alguna razón aún desea utilizar esta funcionalidad utilizando scripts que se descargaron por separado del master , debería descargar git-prompt.sh manera similar:

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

... y agregue la siguiente línea a su ~/.bash_profile :

source ~/.git-prompt.sh

Entonces su variable PS1 que incluye __git_ps1 ''%s'' debería funcionar bien.


Para git, hay /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh . Y mira también /etc/bashrc_Apple_Terminal .

Entonces, puse estos en ~/.bash_profile :

if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh ]; then . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh export GIT_PS1_SHOWCOLORHINTS=1 export GIT_PS1_SHOWDIRTYSTATE=1 PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }__git_ps1 ''/u:/w'' ''///$ ''" fi


Para macports tuve que agregar: source /opt/local/share/git-core/git-prompt.sh a mi ./profile



Si está esperando usar Homebrew para actualizar Git y dejar que su sistema se quede desactualizado en general (como lo hice yo), es posible que deba actualizar Homebrew por primera vez (según la actualización de Brew) : Los siguientes archivos del árbol de trabajo sin seguimiento se sobrescribirían con merge: gracias @ chris-frisina)

Primero pon a Homebrew en línea con la versión actual

cd / usr / local
origen git fetch
git reset - hard origin / master

Luego actualiza Git:

preparar git actualizar

¡Problema resuelto! ;-)


Siguiendo trabajó para mí como un encanto:

Ejecutar siguiendo en su terminal:

curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git

Abrir / Crear perfil de bash:

$ vi ~/.bash_profile

Agregue lo siguiente al archivo:

source ~/.bash_git export PS1=''/[/033[01;32m/]os /[/033[01;34m/]/w $(__git_ps1 "[%s]")/$/[/033[00m/] '' export GIT_PS1_SHOWDIRTYSTATE=1 export GIT_PS1_SHOWUPSTREAM="auto"

Finalmente, obténgalo utilizando:

$ source ~/.bash_profile

Esto resolverá el problema de bash: __git_ps1: command not found .

También su aviso cambiará a "os". Para cambiar "os" a otra cosa, modifique la cadena "os" en la línea de exportación PS1.


Tuve el mismo problema al actualizar a Yosemite.

Solo tuve que modificar ~/.bashrc a la source /usr/local/etc/bash_completion.d/git-prompt.sh lugar de la ruta anterior.

luego volver a la fuente de su . ~/.bashrc . ~/.bashrc para obtener el efecto.


__git_ps1 para bash ahora se encuentra en git-prompt.sh en /usr/local/etc/bash_completion.d en mi versión instalada git versión 1.8.1.5


esto funciona en OS 10.8 en el .bash_profile

if [ -f ~/.git-prompt.sh ]; then source ~/.git-prompt.sh export PS1=''YOURNAME[/W]$(__git_ps1 "(%s)"): '' fi