J'essaie de changer mon ordre de commande dans le terminal. Je continue à avoir l'erreur:
-bash: __git_ps1: command not found
Je l'ai essayé en le tapant tel quel dans le terminal: __git_ps1
. Je l'ai aussi essayé dans le .bash_profile
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Comme vous pourrez peut-être voir/dire, oui, l'auto-complétion est installée et cela fonctionne très bien!
Je suis tombé sur cette question: " La variable env. PS1 ne fonctionne pas sur mac " ce qui donne le code
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Je l’ajoute donc à mon .bash_profile
en espérant que cela changera quelque chose. Eh bien, il l'a fait. Il vient de changer la sortie d'erreur.
Voici le .bash_profile
avec l'ajout:
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
Et maintenant, voici la sortie d'erreur modifiée:
sed: (%s): No such file or directory
Note: _ J'ai également déplacé le pseudonyme sous la source sans aucune différence. J'ai version git 1.7.12.1
Cela devrait être un simple changement. Quelqu'un peut-il m'aider s'il vous plaît?
Edit 10/13/12
Non, je ne veux certainement pas définir __git_ps1 moi-même, mais j'essayais simplement de voir si cela serait reconnu. Oui, j'ai le fichier .git-completion.bash
installé. Voici comment j'ai obtenu l'auto-complétion sur ma machine.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
ls -la
liste ensuite le fichier .git-completion.bash
.
Edit 10/13/12 - Résolu par Mark Longair _ (ci-dessous)
Le code suivant a fonctionné pour moi dans le .bash_profile
alors que d'autres ne l'ont pas ...
if [ -f ~/.git-Prompt.sh ]; then
source ~/.git-Prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
Vous avez installé la version de git-completion.bash
à partir de master
- dans l'historique de développement de git, ceci est après un commit qui sépare la fonction __git_ps1
de la fonctionnalité d'achèvement dans un nouveau fichier (git-Prompt.sh
). L'engagement qui a introduit ce changement, ce qui explique la raison, est af31a456 .
Je suggérerais toujours que vous sourcez simplement la version de git-completion.bash
(ou git-Prompt.sh
) fournie avec votre installation de git.
Toutefois, si, pour une raison quelconque, vous souhaitez toujours utiliser cette fonctionnalité en utilisant des scripts téléchargés séparément à partir de master
, vous devez télécharger git-Prompt.sh
de la même manière:
curl -o ~/.git-Prompt.sh \
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-Prompt.sh
... et ajoutez la ligne suivante à votre ~/.bash_profile
:
source ~/.git-Prompt.sh
Ensuite, votre variable PS1
qui inclut __git_ps1 '%s'
devrait fonctionner correctement.
Après la mise à niveau vers OSX 10.9 Mavericks, je devais faire référence aux fichiers suivants pour que la commande git soit terminée et que git Prompt fonctionne à nouveau.
De mon .bash_profile ou similaire:
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)")\$ '
Vous devriez
$ brasser installe bash bash-complétion git
Puis, source "$ (brew --prefix)/etc/bash_completion" dans votre .bashrc.
La suite a fonctionné pour moi comme un charme:
Exécutez ensuite dans votre terminal:
curl -L https://raw.github.com/git/git/master/contrib/completion/git-Prompt.sh > ~/.bash_git
Ouvrir/créer bash_profile:
$ vi ~/.bash_profile
Ajouter ce qui suit au fichier:
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"
Enfin, sourcez le en utilisant:
$ source ~/.bash_profile
Cela résoudra le problème de bash: __git_ps1: command not found
.
De plus, votre invite deviendra "os". Pour remplacer "os" par autre chose, modifiez la chaîne "os" dans la ligne d'exportation PS1.
Téléchargez le paquet git à partir du navigateur https://git-scm.com/download/
Remarque: si vous installez avec l'option curl [option] https://...
à télécharger, vous devez vous assurer que votre système prend en charge SSL. Pour les nouveaux venus, télécharger depuis le navigateur et installer directement à partir du programme d'installation de git est beaucoup plus facile.
which git
git --version
la version actuelle devrait être 2.10.1. nano ~/.bash_profile
ou nano ~/.bashrc
Dépend de l'endroit où se trouve votre modification.source /usr/local/git/contrib/completion/git-completion.bash
source /usr/local/git/contrib/completion/git-Prompt.sh
Remarque: l'emplacement d'installation de git est passé de opt/directory à usr/local/après la mise à niveau OSX vers El Capitain. C'est pourquoi une partie de l'ancienne réponse ci-dessus ne fonctionne plus dans MacOS Sierra.
Ajoutez le code suivant à votre configuration PS1:
Option 1: ajoutez directement à votre PS1: export PS1='\w$(__git_ps1 "(%s)") > '
.git-completion.bash
est présent dans mon répertoire personnel et que je peux ajouter un autre format Prompt au premier plan. voici mon invite personnel pour votre référence: export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
Option 2: Ajouter un script de sélection
si [-f ~/.git-completion.bash]; puis export PS1 = '\ w $ (__ git_ps1 "(% s)")>' fi
Enregistrez et utilisez le profil: source ~/.bash_profile
ou source ~/.bashrc
J'ai eu le même problème lors de la mise à niveau vers Yosemite.
Il me suffisait de modifier ~/.bashrc
en source /usr/local/etc/bash_completion.d/git-Prompt.sh
au lieu de l'ancien chemin.
puis re-source votre . ~/.bashrc
pour obtenir l'effet.
__git_ps1 pour bash se trouve maintenant dans git-Prompt.sh dans /usr/local/etc/bash_completion.d sur mon serveur installé git version 1.8.1.5
High Sierra solution propre avec des couleurs!
Aucun téléchargement. Pas de bière. Aucun Xcode
Ajoutez-le simplement à votre ~/.bashrc ou ~/.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" "\\\$ "'
Si vous souhaitez utiliser Homebrew pour mettre à niveau Git et que votre système devient obsolète en général (comme je l'ai fait), vous devrez peut-être mettre à jour Homebrew lui-même en premier lieu (selon Mise à jour de la bière: les fichiers d’arbre de travail non suivis suivants seraient écrasés par la fusion: thanks @ chris-frisina)
Commencez par mettre Homebrew en conformité avec la version actuelle
cd/usr/local
git chercher l'origine
Réinitialisation git - Hard Origin/master
Puis mettez à jour Git:
brassage git mise à niveau
Problème résolu! ;-)
cela fonctionne dans OS 10.8 dans le fichier .bash_profile
if [ -f ~/.git-Prompt.sh ]; then
source ~/.git-Prompt.sh
export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): '
fi
Au moins avec Xcode 6, vous avez déjà git-completion.bash
. C'est à l'intérieur du bundle d'applications Xcode.
Ajoutez simplement ceci à votre .bashrc:
source `xcode-select -p`/usr/share/git-core/git-completion.bash
Pour macports je devais ajouter: source /opt/local/share/git-core/git-Prompt.sh
à mon ./profile
Ajouter le fichier source dans le fichier .bash_profile
source ~/git-completion0.bash
source ~/git-Prompt0.sh
and four to trigger the code block.
Je sais que ce n'est pas une vraie réponse ...
J'ai eu quelques problèmes étranges avec le sourcing de git-Prompt.sh dans mon .bashrc, alors j'ai commencé à chercher une autre solution. Celui-ci: http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-Prompt/ n'utilise pas __git_ps1 et l'auteur affirme que cela fonctionne aussi sur Mac (pour l’instant, cela fonctionne parfaitement sur mon Ubuntu et il est facile de modifier).
J'espère que ça aide!
Je faisais le cours sur Udacity pour git hub et j'avais le même problème. Voici mon code final qui fait que ça marche correctement.
# 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"
Cela fonctionne! https://i.stack.imgur.com/d0lvb.jpg
Pour git, il y a /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-Prompt.sh
. Et s'il vous plaît regardez /etc/bashrc_Apple_Terminal
aussi.
Alors, je mets ça dans ~/.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
Celui-ci a fonctionné pour moi, et il a coloré la sortie git et un indicateur dans l'invite si des fichiers ont été modifiés/ajoutés, cuits à droite dedans:
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\]\$ '
Assurez-vous d'utiliser le bon chemin! J'ai utilisé homebrew pour installer git, utilisez brew list git
pour obtenir le chemin de votre installation actuelle.
Serait bien de ne pas utiliser un chemin codé en dur, mais je ne sais pas comment obtenir le chemin de l'installation actuelle.
Plus d'infos ici: http://fr.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-Prompt/