(Mac) -bash: git ps1: commande introuvable
j'essaye de changer mon promt de commande dans le terminal. Je n'arrête pas de recevoir l'erreur:
-bash: __git_ps1: command not found
j'ai essayé juste en tapant dans le terminal: __git_ps1
. J'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 pourriez être en mesure de voir/dire, oui, j'ai l'auto-completion installé et il fonctionne très bien!
je suis tombé sur cette question: " PS1 env variable ne fonctionne pas sur mac "qui donne le code
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* (.*)/()/'"
donc je l'ajoute à mon .bash_profile
en espérant qu'il va changer 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/* (.*)/()/'"
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 aussi déplacé l'alias au-dessous de 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?
Modifier 10/13/12
Non, Je ne veux certainement pas définir_ _ git _ ps1 moi-même mais était juste essayer de voir si elle serait reconnue par de le faire. Oui, j'ai installé le fichier .git-completion.bash
. Voilà comment j'ai eu l'auto completion 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
affiche alors le fichier .git-completion.bash
.
Modifier 10/13/12 - Résolu par Marque Longair (ci-dessous)
le code suivant a fonctionné pour moi dans le .bash_profile
alors que d'autres ne l'ont pas fait...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[W]$(__git_ps1 "(%s)"): '
fi
17 réponses
vous avez installé la version de git-completion.bash
de master
- dans l'histoire du développement de git, c'est après une propagation qui a divisé la fonction __git_ps1
de la fonctionnalité d'achèvement dans un nouveau fichier ( git-prompt.sh
). Le comité qui a introduit ce changement, ce qui explique la raison d'être, est af31a456 .
je suggérerais encore que vous juste la source de la version de git-completion.bash
(ou git-prompt.sh
) qui est livré avec votre installation de git.
cependant, si pour une raison quelconque vous voulez toujours utiliser cette fonctionnalité en utilisant des scripts téléchargés séparément de master
, vous devez télécharger git-prompt.sh
de même:
curl -o ~/.git-prompt.sh \
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
... et ajouter la ligne suivante à votre ~/.bash_profile
:
source ~/.git-prompt.sh
alors votre PS1
variable qui inclut __git_ps1 '%s'
devrait fonctionner très bien.
après la mise à niveau vers OSX 10.9 Mavericks, j'ai dû faire référence aux fichiers suivants pour obtenir git shell command completion et git prompt to work again.
de my .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
$ brew install bash bash-completion git
Puis "$(brew --prefix)/etc/bash_completion" dans votre .bashrc.
suivant travaillé pour moi comme un charme:
suivre 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='\[3[01;32m\]os \[3[01;34m\]\w $(__git_ps1 "[%s]")$\[3[00m\] '
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"
enfin, la source en utilisant:
$ source ~/.bash_profile
cela résoudra le problème de bash: __git_ps1: command not found
.
aussi votre invite va changer en "os". Pour changer "os" en quelque chose sinon, Modifiez la chaîne "os"dans la ligne export PS1.
Solution pour MacOS Sierra et Git version 2.10.1 <2017-2-06>
Étape 1: Installer le Git
vous pouvez sauter cette étape si vous avez déjà installé le dernier git.
télécharger le paquet git à partir du navigateur https://git-scm.com/download/
Note: Si vous installez avec l'option curl [option] https://...
pour télécharger, vous devez assurez-vous que votre système prend en charge SSL. Donc pour new comer, télécharger à partir du navigateur et installer directement à partir de Git installer est beaucoup plus facile.
- Montrer où est votre répertoire git:
which git
- montre quelle version de votre git est actuellement:
git --version
la version actuelle devrait être 2.10.1.
Étape 2: ajouter votre profil git à votre shell
- ouvrir votre profil shell:
-
nano ~/.bash_profile
ounano ~/.bashrc
dépend de votre modification.
-
- ajouter le code suivant au fichier:
-
source /usr/local/git/contrib/completion/git-completion.bash
-
source /usr/local/git/contrib/completion/git-prompt.sh
-
Note: l'emplacement de l'installation de git a changé d'opt/ directory à usr/local/ après la mise à niveau D'OSX à El Capitain, et c'est pourquoi une partie de l'ancienne réponse ci-dessus ne fonctionne plus dans MacOS Sierra.
-
ajouter le code suivant à votre configuration PS1:
-
Option 1: ajouter directement à votre PS1:
Je préfère cette approche simple car je sais déjà que leexport PS1='\w$(__git_ps1 "(%s)") > '
.git-completion.bash
est présent dans mon répertoire personnel, et je peux ajouter un autre format prompt au début de celui-ci. voici mon invite personnelle pour votre référence:export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
-
Option 2: Ajouter un script de sélection
if [ -f ~/.git-completion.bash ]; then export PS1='\w$(__git_ps1 "(%s)") > ' fi
-
-
Sauvegardez et utilisez le profil:
source ~/.bash_profile
ousource ~/.bashrc
j'ai eu le même problème lors de la mise à niveau vers Yosemite.
j'ai juste dû modifier ~/.bashrc
en source /usr/local/etc/bash_completion.d/git-prompt.sh
au lieu de l'ancien chemin.
puis réimprimer votre . ~/.bashrc
pour obtenir l'effet.
_ _ _ git _ ps1 pour bash se trouve maintenant dans git-prompt.sh in/usr/local/etc / bash_completion.d sur mon brew installé Git version 1.8.1.5
cela fonctionne sur les OS 10.8 dans le .bash_profile
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): '
fi
pour macports j'ai dû ajouter: source /opt/local/share/git-core/git-prompt.sh
à mon ./ profile
si vous espérez utiliser Homebrew pour mettre à niveau Git et que vous avez laissé votre système devenir obsolète en général (comme je l'ai fait), vous pouvez avoir besoin D'apporter Homebrew lui-même up-to-date d'abord (selon brew mise à jour: les fichiers d'arbre de travail suivants non tracés seraient écrasés par fusion: merci @chris-frisina)
première mise en conformité avec la version actuelle
cd / usr / local
git fetch origin
git reset --hard origin /master
puis mettre à jour Git:
brasser de la mise à niveau git
Problème Résolu! ;- )
au moins avec Xcode 6, Vous avez déjà git-completion.bash
. C'est dans le paquet d'Applications Xcode.
ajoutez ceci à votre .bashrc:
source `xcode-select -p`/usr/share/git-core/git-completion.bash
je sais que ce n'est pas une vraie réponse...
j'ai eu quelques problèmes étranges avec l'approvisionnement git-prompt.sh dans la mienne .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 qu'il fonctionne aussi sur Mac (pour l'instant, il fonctionne parfaitement sur mon Ubuntu et il est facile à modifier).
j'espère que cela aide!
je faisais le cours sur Udacity pour git hub et j'avais ce même problème. Voici mon code final qui fonctionne correctement.
# Change command prompt
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \ . (.*\)/()/'"
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"
ça marche! https://i.stack.imgur.com/d0lvb.jpg
haute Sierra solution propre avec des couleurs !
pas de téléchargements. Pas de bière. N ° Xcode
il suffit de l'ajouter à 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" "\$ "'
celui-ci a fonctionné pour moi, et il a coloré la sortie git et un indicateur dans l'invite si les fichiers ont changé / ont été ajoutés, droit cuit en elle:
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='\[3[32m\]\u@\h\[3[00m\]:\[3[34m\]\w\[3[31m\]$(__git_ps1)\[3[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é dur, mais ne sait pas comment obtenir le chemin de l'installation actuelle.
plus infos ici: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/
pour git, il y a /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
. Et s'il vous plaît regarder /etc/bashrc_Apple_Terminal
aussi.
donc, je les ai mis 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
- Téléchargez les fichiers git-prompt.sh et git-completion.bash de ce git completion
- renommer les fichiers.
- déplacez ces fichiers dans votre répertoire personnel.
-
Ajouter le fichier source dans à la .bash_profile
source ~/git-completion0.bash source ~/git-prompt0.sh and four to trigger the code block.