Découvrir Git : introduction et premiers pas

Git est un outil de gestion de version qui permet de naviguer dans l'historique de votre projet. À la base développé par Linus Torvalds pour gérer les sources du noyau Linux, Git est désormais le logiciel de gestion de version le plus utilisé au monde.

À quoi sert Git ?

Git offre les possibilités suivantes :

  • stocker des commits c'est à dire sauvegarder les différentes étapes de l'évolution de votre projet à chaque modification ;
  • consulter l'historique de vos commits à travers le temps ;
  • récupérer votre projet tel qu'il était à un instant donné ;
  • partager votre historique entre les membres de votre équipe ;
  • résoudre les conflits de versions quand plusieurs modifications incompatibles impactent les mêmes fichiers ;
  • etc.

Principes et fonctionnement

Contrairement à beaucoup de ses concurrents plus anciens, Git est un système de gestion de version décentralisé. Cela signifie que les données du dépôt Git ne se trouvent pas sur un serveur distant mais bel et bien sur votre machine.

Le mode décentralisé présente beaucoup d'avantages :

  • Git est extrêmement rapide à mettre en place : en 3 secondes, on a créé un dépot sans avoir besoin de tripatouiller un serveur quelconque ;
  • le dépôt n'étant pas dépendant du réseau, les opérations sont très rapides et vous pouvez travailler n'importe où, e.g dans le train ;
  • il est possible de créer autant de dépôts que l'on veut sur une même machine.

Installation

Git s'installe facilement. Exemple avec Ubuntu :

sudo apt install git

Utilisation (trés) basique

Les fonctionalités de base sont simples à utiliser.

Pour initialiser un dépôt, il suffit de se placer dans le répertoire des sources, et :

git init
git add .
git commit -a

Ces commandes initialisent un nouveau dépot, indiquent à git d'y placer le répertoire courant, et de lancer un commit.

Supposons que j'aie modifié un fichier toto.txt à la racine de mon répertoire. Je vais donc commiter :

git add toto.txt
git commit

La commande commit ne prend pas en compte automatiquement les fichiers modifiés. Il faut les spécifier automatiquement avec la commande

git add <fichiers ou répertoires>

Ça peut paraître contraignant, mais c'est en fait trés pratique à l'usage (si si, vous verrez).

Pour obtenir un statut du dépot (fichiers modifiés, etc.), utiliser la commande :

git status

Pour voir l'historique des commits sur la branche en cours :

git log

Utilisation (un peu) avancée

Pour voir la liste des différences depuis le dernier commit :

git diff

Pour générer la liste des fichiers modifiés depuis le premier commit :

git log
git diff --name-only

Pour voir un commit spécifique :

git show <commit>

(Note <commit> est une branche, un tag ou un identifiant de la forme e89345b2e..., qu'on récupère dans les logs.

Annuler le dernier commit :

git reset --hard HEAD^

Parfois, on veut marquer un état précis de l'arbre du développement, pour créer, par exemple, une version stable. C'est trés facile avec git :

git tag <mon_tag>

Pour voir tous les tags existants :

git tag -l

Git peut évidemment gérer plusieurs branches de développement. Pour créer une nouvelle branche à partir de la branche courante :

git checkout -b  <nouvelle_branche>

Pour lister les branches existantes :

git branch

Pour passer d'une branche à l'autre : (Note : Il est possible de commiter indépendamment sur différentes branches (c'est même le but))

git checkout <nom de la branche>

Ces quelques commandes vous permettront de démarrer en douceur. Il est évident qu'il ne s'agit que d'une infime partie des possibilités de l'outil. Nous en reparlerons.