Configurer Git (un gestionnaire de version décentralisé qui change la vie), est particulièrement utile et pas si compliqué. Il suffit de modifier un fichier de configuration.
La configuration globale s’appliquant à tous les repository Git se trouve dans le fichier .gitconfig
se trouvant dans votre dossier utilisateur (i.e. ~/.gitconfig
). Celle-ci peut-être surchargée par une configuration spécifique à chaque repository, via le fichier .git/config
de chaque repository.
Voici typiquement à quoi ressemble mon fichier de configuration globale :
[user] name = Fylhan email = bnmaster@ahahah.fr [color] ui = always branch = always diff = always interactive = always status = always [push] default = simple [alias] co = checkout br = branch st = status ci = commit -a -m last = log -1 HEAD lasts = log -35 --pretty=tformat:"%C(red)%h%x20%C(magenta)%ad%C(auto)%d%x20%C(green)%s%C(white)%x20-%x20%an%C(auto)" --date=short --abbrev-commit --graph --decorate lastpull = !git lasts HEAD --stat --no-merges showtag = !sh -c 'git rev-parse $1 | xargs git cat-file -p' - unstage = reset HEAD -- undo = git reset --soft HEAD^
Entrons un petit peu dans le détails…
La couleur
Normalement ui = always
permet d’avoir un prompt en couleur (c’est bien plus lisible). Mais visiblement sous Windows, il faut préciser ceci plusieurs fois. D’où mon fichier de configuration.
Push moi ça simplement
Plusieurs manières de pusher sont possibles dans Git : matching
et simple
.
- matching : « git push » enverra toutes vos branches locales vers les branches correspondantes sur le remote.
- simple : « git push » enverra seulement la branche locale courante vers la branche correspondante sur le remote.
Auparavant « matching », était la valeur par défaut. Mais ce n’est au final pas la méthode la plus intuitive, et justement depuis la version 2.0, c’est « simple » qui est utilisé. Histoire de ne pas tout changer sans rien dire, un petit message nous avertit de ce comportement lors du premier push :
warning: push.default is unset; its implicit value is changing in
Git 2.0 from ‘matching’ to ‘simple’. To squelch this message
and maintain the current behavior after the default changes, use:git config –global push.default matching
To squelch this message and adopt the new behavior now, use:
git config –global push.default simple
Bref, on nous explique gentiment que le mode « simple » est utilisé, et que pour enlever cet avertissement, il faut sélectionner explicitement ce mode. Soit en utilisant la commande sus-mentionnée, soit en ajoutant à la main la configuration dans le fichier de configuration. Ce qui revient au même !
Stack Overflow : Warning: push.default is unset; its implicit value is changing in Git 2.0 (en).
Les alias
Les alias sont bien pratiques et permettent de gagner un peu de temps. Je vous passe les simples raccourcis syntaxiques (st
pour status
par exemple) et je me permet d’expliquer rapidement quelques alias plus complexes :
Commit
ci = commit -a -m
git ci "Explication sur le commit"
: permet d’ajouter tous les fichiers modifiés (et qui sont déjà dans le gestionnaire de version) au prochain commit, et de commiter avec un message explicatif.
undo = git reset --soft HEAD^
git undo
: supprime le dernier commit. Ce qui avait été modifié et commité se retrouve non commité, mais toujours modifié dans l’espace de travail, donc on ne perd rien.
Log
last = log -1 HEAD
git last
: affiche le message explicatif du dernier commit sur cette branche.
lasts = log -35 --pretty=tformat:"%C(red)%h%x20%C(magenta)%ad%C(auto)%d%x20%C(green)%s%C(white)%x20-%x20%an%C(auto)" --date=short --abbrev-commit --graph --decorate
git lasts
: affiche courtement les messages explicatifs des derniers commits. Plus rapide que que git log -4
. Avant j’utilisais le plus classique « oneline », mais il n’indiquait pas l’heure :
lasts = log --pretty=oneline --abbrev-commit --graph --decorate
lastpull = !git lasts HEAD --stat --no-merges
git lastpull
: affichement les modifications récupérées au dernier pull sur la branche courante.
Tag
showtag = !sh -c 'git rev-parse $1 | xargs git cat-file -p' -
git showtag monTagAMoi
: est génial car il permet d’afficher les informations du tag sélectionner. Pour rappel git tag
affiche les tags existants.
On peut aussi ajouter ces alias en ligne de commande :
git config --global alias.st 'status'
D’autres idées d’alias : Git : des alias pour aller plus vite (fr).