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.
- 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
- Abra su perfil de shell:
-
nano ~/.bash_profile
onano ~/.bashrc
Depende de dónde se encuentre su modificación.
-
- 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.
Agregue el siguiente código a su configuración de PS1:
Opción 1: agregar directamente a tu PS1:
Prefiero este enfoque simple porque ya sé queexport PS1=''/w$(__git_ps1 "(%s)") > ''
.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
Guarde y use el perfil:
source ~/.bash_profile
osource ~/.bashrc
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
- Descargue los archivos git-prompt.sh y git-completed.bash desde esta finalización de Git
- Renombra los archivos.
- Mueva esos archivos a su directorio de inicio.
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
Sé que no es una respuesta real ...
Tuve algunos problemas extraños con el aprovisionamiento de git-prompt.sh en mi .bashrc, así que empecé a buscar otra solución. Este: http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-prompt/ no usa __git_ps1 y el autor afirma que también funciona en Mac (por ahora funciona perfectamente en mi Ubuntu y es fácil de modificar).
¡Espero que ayude!
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