edition de bashrc pour git.

Auteur : adrien_contrib
Date de parrution : 2021-10-03 08:23:11
Dernière modification :



thumbnail de l'article

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.

tags associés :

languages

tools & techno

centres d'intérêts