Question

Je suis nouveau à git et je suis en train d'ajouter la branche git actuelle à mon message déjà existant, qui est défini comme suit:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} "

je l'ai essayé (en s'approvisionnant mon fichier .bashrc à nouveau) et il semblait travailler, mais je suis allé sur une autre branche et il n'a pas mis à jour. Comment puis-je assurer que le $(__git_ps1) ne cache?

Était-ce utile?

La solution

Vous avez besoin d'une barre oblique inverse sur la $ il est donc pas immédiatement élargi. (Comparez la `...`, ce qui est une autre façon d'écrire $(...).)

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w \$(__git_ps1) >${NORMAL} "

Je suis d'accord avec @MikeSep sur l'utilisation des guillemets simples, mais il est en fait un peu plus optimale pour laisser les couleurs et comme être substitué immédiatement. Pas nécessaire, juste un peu mieux. Cela dit, il plus facile à comprendre ce qui se passe si vous utilisez les guillemets simples.

Autres conseils

Votre chaîne de PS1 est probablement obtenir une évaluation avant d'être sauvées, mais vous voulez vraiment la commande __git_ps1 pour exécuter chaque fois que vous obtenez une invite de commande. Je vous recommande d'utiliser des guillemets simples au lieu de guillemets doubles pour votre ligne export PS1='${RESET}...'.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top