Utilizzo quotidianamente git da molti mesi e fin dall’inizio ho sentito l’esigenza di migliorare l’esperienza d’uso di questo strumento. Quello che non tutti sanno è che la versione installata su Mac OSX è configurata in modo essenziale e questo vuol dire che:
- non ci sono colori nel comando status
- non c’è l’auto completamento dei comandi di git
- non ci sono nel prompt delle indicazioni sul branch in uso
In pratica se entriamo in un progetto e digitiamo git status quello che otteniamo è una listato uniforme e molto confuso (figura 1)
Andiamo con ordine. Per prima cosa abilitiamo i colori di git con questo semplice comando:
$ git config color.ui true
Se ora digitiamo il comando git status otteniamo
Decisamente meglio. Next step: attivare l’auto completamento dei comandi git. Per farlo è necessario scaricare i file che servono dal repository ufficiale in questo modo:
$ mkdir /tmp # se non esiste già $ cd /tmp $ git clone git://git.kernel.org/pub/scm/git/git.git $ cd git $ git checkout v`git --version | awk '{print $3}'` $ cp contrib/completion/git-completion.bash ~/.git-completion.bash $ cd ~ $ rm -rf /tmp/git $ echo -e ">> .profile
In particolare quest’ultimo comando creerà il file .profile nello home directory dell’utente se non esiste. Se tutto è andato a buon fine l’auto complemtamento dei comandi git dovrebbe essere attivo. Quindi digitando per esempio:
$ git stat[tab]
Il comando dovrebbe auto-completarsi. Andiamo oltre, attiviamo anche la visualizzazione sul prompt dei comandi il nome del branch attivo e il suo stato. Per farlo basta modificare il file .profile, sulla home directory dell’utente, e aggiungere il seguente codice:
GIT_PS1_SHOWDIRTYSTATE=true if [ -f /opt/local/etc/bash_completion ]; then . /opt/local/etc/bash_completion fi PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '
Già che ci siamo diamo anche un tocco di colore alla shell in generale aggiungendo due righe in testa al file (se non sono già presenti):
export CLICOLOR=1 export LSCOLORS=GxFxCxDxBxegedabagaced
Riavviamo il Terminale, entriamo in un progetto git e digitiamo git status quello che otteniamo è mostrato nella figura seguente.
Beh che dire, tutta un’altra storia!!!


