edition de bashrc pour git.
Auteur : adrien_contrib
Date de parrution : 2021-10-03 08:23:11
Dernière modification :

vous utiliser git sur un terminal qui n'indique pas la branche sur laquel vous êtes? pire: votre terminal est monochrome et l'invite se confond avec le reste? vous êtes au bon endroit!
que permet ce tutoriel?
Ce tutoriel va vous permettre de modifier les couleurs, les gras et les informations affiché par votre invite de commande dans votre terminal.
Il s'aplique aux architectures debian (debian, ubuntu, xubuntu, kubuntu, ... ).
pourquoi ce tutoriel?
Parce que j'ai souvent eu a faire cette opération et que, la premiere fois, j'ai été confronté à un problème: j'ai trouvé de la documentation pour modifier l'invite, a partir de laquel j'ai bidouiller jusqu'à arrivé a mes fins. Oui mais voilà, le but n'était pas de prendre le temp de comprendre comment fonctionne un fichier .bashrc (bien que ce soit fort intéressant), mais d'avoir tout de suite quelque-chose de prêt à l'emploi. Et la, je n'ai rien trouvé comme tuto clef en main. Donc ce tuto a pour objectif d'éviter à d'autre de passer une longue nuit a paramétré cela.
notes et prérequis
cette opération modifiera toutes les invites de tout les programmes de terminal sur votre machine (y comprit depuis une autre machine vers celle-ci via ssh).
Cette opération ne nécessite pas d'accès root! vous pouvez donc l'utiliser par exemple sur le serveur de votre hebergeur favoris, il suffit d'un accès ssh utilisateur.
Etape 1: modification de .bashrc
Lorsque vous êtes dans /home/votreNom (ou ~ ), vous trouverez un fichier .bashrc qu'il va faloir modifier. s'il n'existe pas , pas d'inquiétude, vous n'avez qu'à le créer.
A l'intérieur de ce fichier, supprimer tout (faites éventuellement une sauvegarde de contenu si besoin). remplacer par le code suivant:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# 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
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
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
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export GIT_PS1_SHOWDIRTYSTATE=1 GIT_PS1_SHOWSTASHSTATE=1 GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM=verbose GIT_PS1_DESCRIBE_STYLE=branch GIT_PS1_SHOWCOLORHINTS=1
export GIT_PS1_HIDE_IF_PWD_IGNORED=1
# Colorful prompt for Bash!
export PS1='\u@\h:\W$(__git_ps1)\$ '
# Or if you want the basic prompt, no colors, no timestamps, just regular + Git info:
# export PS1='\u@\h:\W$(__git_ps1)\$ '
# Unrelated but useful: avoid auto-édit on successful merges, starting with Git 2.0
export GIT_MERGE_AUTOEDIT=no
function color_my_prompt {
local __user_and_host="\[\033[01;32m\]\u@\h"
local __cur_location="\[\033[01;34m\]\w"
local __git_branch_color="\[\033[31m\]"
#local __git_branch="\`ruby -e \"print (%x{git branch 2> /dev/null}.grep(/^\*/).first || '').gsub(/^\* (.+)$/, '(\1) ')\"\`"
local __git_branch='`git branch 2> /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /`'
local __prompt_tail="\[\033[35m\]$"
local __last_color="\[\033[00m\]"
export PS1="$__user_and_host $__cur_location $__git_branch_color$__git_branch$__prompt_tail$__last_color "
}
color_my_prompt
Etape 2: rechargement de .bashrc
il ne vous reste plus qu'à recharger le fichier pour qu'il soit effectif. pour cela, dans votre terminal, tapez:
source ~/.bashrc
terminer!
normalement, vous avez maintenant un invite de commande qui vous indique votre branche, qui est en couleur et qui est en gras.