Logo Git

Configuration de Git

Publié dans Geekeries | Marqué avec , , ,
Share

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).

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*