J'essaie de changer mon invite de commande dans le terminal. Je reçois toujours l'erreur:
-bash: __git_ps1: command not found
Je l' ai essayé en tapant dans le terminal est la suivante : __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, j'ai l'auto-complétion installée et cela fonctionne très bien!
Je suis tombé sur cette question: "La variable env PS1 ne fonctionne pas sur mac " qui donne le code
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Je l'ajoute donc à mon .bash_profile
espoir que cela changera quelque chose. Eh bien, oui. Cela vient de changer la sortie d'erreur.
Voici .bash_profile
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
Remarque: J'ai également déplacé l'alias sous la source sans aucune différence. J'ai la version 1.7.12.1 de git
Cela devrait être un simple changement. Quelqu'un peut-il m'aider?
Modifier 13/10/12
Non, je ne veux certainement pas définir __git_ps1 moi-même, mais j'essayais simplement de voir s'il serait reconnu en le faisant. Oui, j'ai .git-completion.bash
installé le fichier. Voici comment j'ai obtenu la complétion automatique 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
A ls -la
répertorie ensuite le .git-completion.bash
fichier.
Edit 13/10/12 - Résolu par Mark Longair (ci-dessous)
Le code suivant a fonctionné pour moi pendant .bash_profile
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
git <tab>
comme indiqué dans le commit référencé par Mark Longair.
git-completion.bash
définit__git_ps1
comme une fonction shell. Est-ce le vôtre? Comment savez-vous que l'achèvement fonctionne? Que se passe-t-il lorsque vous tapezgit h
<TAB>?