Git, gestionnaire de version décentralisée
Outils
Les références
Dans git, les références sont des raccourcis pour nommer des commits. Ils sont très utiles
pour la plupart des commandes git. Précédemment nous avons vu un raccourci nommé HEAD, qui est
un pointeur sur le dernier commit de la branche actuelle de l'utilisateur.
Comme nous l'avons souvent évoqué, les commits sont des identifiants SHA1. Soit l'identifiant
xxx, représentant un commit.
- xxx^N représente le Nième parent du commit (Par défaut 1 si N n'est pas indiqué)
- xxx~2 représente le père du père de xxx
- HEAD^ représente le premier père du commit pointé par HEAD
- HEAD~3 représente le troisième commit avant celui pointé par HEAD
- HEAD~3:/path/to/file
Consulter les différences
La commande git-diff permet de consulter les différences entre les fichiers, révisions, etc. Elle est très performante. Voici quelques cas d'utilisation :
- git-diff pour afficher les différences entre les changements ajoutés dans l'index et le répertoire de travail
- git-diff HEAD pour afficher les différences entre le commit HEAD et le répertoire de travail
- git-diff --cached pour afficher les différences entre HEAD et l'index
- git-diff my_branch pour afficher les différences entre la branche "my_branch" et le répertoire de travail
- git-diff branch1 branch2 pour afficher les différences entre les deux branches
Partager son code avec les autres
La commande git-clone, par défaut, lorsqu'elle clone un repository, suit toutes les branches sources.
- origin/master
- origin/branch1
- ...
Annuler un commit, récupération de sources
Lorsqu'un utilisateur souhaite retrouver un fichier perdu, annuler un commit, ou encore retrouver une certaine version d'un fichier, il n'a besoin que de deux outils : git-checkout et git-reset. Quelques exemples :
- git-reset --hard HEAD^ supprime le dernier commit
- git-reset --soft HEAD^ supprime le dernier commit tout en conservant les changements non commités
- git-checkout HEAD~2 /path/to/file restaure la fichier en argument à sa version deux commits en arrière
Autres outils interessants
- git-archive exporte le repository dans un format compressé, tout en générant un fichier ChangeLog basé sur le git-log
- git-bisect est un outil qui permet de recherche de régressions
- git-mv renomme/déplace un fichier ou un répertoire
- git-rm supprime un fichier ou un répertoire
- git-revert crée un commit qui annule le précédent