J'utilise ce guide pour afficher le nom de la branche dans le terminal gnome (Ubuntu 15.10) lorsque je travaille dans un référentiel git. Sur la base de ce qui précède, j'ai maintenant le texte ci-dessous dans mon fichier ~/.bashrc:
# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
#force_color_Prompt=yes
...
# Add git branch if its present to PS1
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_Prompt force_color_Prompt
En conséquence, je reçois maintenant:
donc cela fonctionne . Mais pourquoi la coloration de mon utilisateur @ Host a-t-elle été supprimée? Et je m'attendrais aussi à ce que le nom de la branche soit coloré. Avant cela ressemblait à ceci:
UPDATE: J'ai maintenant essayé ce guide à la place:
https://coderwall.com/p/fasnya/add-git-branch-name-to-bash-Prompt
en ajoutant ceci à .bashrc:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
et ça marche:
Avis dans .bashrc j'ai aussi ceci (par défaut):
# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
#force_color_Prompt=yes
Je n'ai pas encore trouvé la raison pour laquelle cet extrait donne le résultat correct et non la version précédente. Des commentaires à ce sujet?
Voici la version de mon .bashrc qui a l'ancien snippet activé qui ne fonctionne pas:
Cet extrait:
# Add git branch if its present to PS1
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
Est destiné à remplacer la définition d'invite par défaut:
if [ "$color_Prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
Qui se termine par:
unset color_Prompt force_color_Prompt
Le .bashrc
que vous avez publié indique que vous l'ajoutez après la définition d'invite par défaut et unset color_Prompt force_color_Prompt
(ligne # 64).
Soit remplacez la définition d'invite par défaut par l'extrait de code ou laissez votre ~/.bashrc
tel qu'il est et commentez la définition d'invite par défaut avec unset color_Prompt force_color_Prompt
à la ligne # 64:
Donc, une partie de votre .bashrc pourrait ressembler à
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\] $(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
# THE SIX LINES BELOW are the default Prompt and the unset (which were in the original .bashrc)
#if [ "$color_Prompt" = yes ]; then
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_Prompt force_color_Prompt
Ajoutez ces lignes dans votre fichier ~/.bashrc
# Show git branch name
force_color_Prompt=yes
color_Prompt=yes
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_Prompt force_color_Prompt
Rechargez le fichier .bashrc avec cette commande:
$ source ~/.bashrc
Pour l'instant, j'ai suivi ceci https://Gist.github.com/eliotsykes/47516b877f5a4f7cd52f et je travaille, j'aime ça jusqu'à présent, bien que je prévoie de le personnaliser davantage.
Dans le terminal
mkdir ~/.bash
Copiez le fichier
git-Prompt.sh
brut de git contrib dans le répertoire~/.bash
: https://github.com/git/git/blob/master/contrib/completion/git-Prompt.shDans
~/.bashrc
ou~/.bash_profile
(choisissez le fichier dans lequel vous mettez normalement les personnalisations/configurations bash), ajoutez les lignes suivantes:source ~/.bash/git-Prompt.sh # Show git branch name at command Prompt export GIT_PS1_SHOWCOLORHINTS=true # Option for git-Prompt.sh to show branch name in color # Terminal Prompt: # Include git branch, use Prompt_COMMAND (not PS1) to get color output (see git-Prompt.sh for more) export Prompt_COMMAND='__git_ps1 "\w" "\n\\\$ "' # Git branch (relies on git-Prompt.sh)
Tant que vous vous trouvez dans un dépôt Git, votre invite Bash doit maintenant afficher la branche git actuelle en couleur, ce qui signifie qu'elle contient des modifications non validées.
Aller au dossier d'accueil
cliquez sur Ctrl+h pour montrer les fichiers cachés.
Ouvrez le fichier .bashrc
et collez à la fin le suivant:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
Si votre terminal est ouvert, fermez-le et rouvrez-le. Prendre plaisir!!
Mon problème était que je n'avais pas activé l'option
Exécuter la commande en tant que shell de connexion dans
Terminal → Editer → Profil Préférences → Commande
remplacer
parse_git_branch
avec
parse_git_branch 2>/dev/null
dans votre définition de PS1 et vivez heureux pour toujours.