Autres conseils

En fait, je pense qu'il est le premier qui est à l'origine de l'erreur, car quand je le lance dans un répertoire non-git, je reçois les erreurs. Le second ne crache pas les erreurs.

Vous pouvez rediriger la sortie d'erreur à /dev/null.

travaillerait en bash, zsh pas sûr, mais il devrait vous donner une idée de la façon d'aller.

git_prompt_info() {
    ref=$(git symbolic-ref HEAD 2>/dev/null)
    if [ ! -z $ref ]; then
        newref=$(echo $ref | cut -d'/' -f3)
        echo $newref
    fi
}

Je ne sais pas ce qui serait plus cher que, git ou parcourir tous les répertoires jusqu'à trouver un répertoire .git. Git probablement le répertoire traversal de toute façon. Je ne sais pas.

Would quelque chose comme ce travail?


get_git_dirty() {
set __MT_OK__=0

if [[ -d .git ]]; then
    __MT_OK__=1
fi

while [[ ! -d .git ]]; do
    cd ..
    if [[ -d .git ]]; then
        __MT_OK__=1
        break
    fi
    if [[ $PWD = "/" ]]; then
        break
    fi
done



if [[ __MT_OK__ -eq 1 ]]; then
           git diff --quiet || echo '*'                                                    
fi
}

Cela peut ne pas être la plus élégante solution, mais il devrait fonctionner.

Je reçois ce code enfin au travail:

 # get the name of the branch we are on
 git_prompt_info() {
     BR=$(git symbolic-ref HEAD 2>/dev/null | awk -F/ '{ print $3 }') || { echo "$@" ; exit ; }
     echo $BR
 }

tandis que les autres sont les mêmes que précédemment.

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