Usage minimal de Git

Cette capsule est dédiée à l’apprentissage d’un usage minimal de Git.

Git, c’est un programme qui permet de gérer une hiérarchie de fichiers situés dans un répertoire, et c’est l’outil de référence pour le partage de code d’un projet dans une équipe de développement.

Le répertoire d’un projet géré par Git, on appelle ça un ‘dépot’ ou un ‘repository’ .

Par ailleurs avec Git, on peut gérer différentes versions de cet ensemble de fichiers, qu’on appelle des ‘branches’. On peut créer autant de branches qu’on le souhaite, avec les noms qu’on souhaite.

Voilà un exemple de branches d’un projet git. À la création d’un projet git il y a une branche par défaut appelée ‘main’ ou ‘master’ qui est crée, qu’on voit ici. Les points s’appellent des ‘commits’ et représentent des photos de l’état des fichiers, qu’on réalise avec une commande Git. D’un commit à un autre, les fichiers peuvent être totalement différents : le contenu peut être différent, la liste des fichiers présents peut être différentes. En pratique d’un commit au suivant sur une branche, la liste et le contenu des fichiers varient incrémentalement, mais ça peut ne pas être le cas.

On voit aussi qu’une nouvelle branche dérive toujours d’un commit d’une branche parent. Ici par exemple la branche ‘little feature’ dérive de ce premier commit de la branche ‘main’

Git, contrairement à beaucoup de ses prédécesseurs, est presque totalement décentralisé, c’est à dire que la plupart de ses opérations se font localement, sans avoir besoin d’être connecté au réseau.

On peut se servir de Git uniquement localement sur son PC et profiter du système de branches. Vous l’avez compris, les branches sont très utiles pour tester des idées, avoir plusieurs versions d’une même application, et toutes sortes d’autres usages. On va voir qu’il est particulièrement bien adapté à gérer des fichiers texte, mais il peut aussi servir à gérer différentes versions de fichiers office par exemple.

En général dans le contexte du développement de code, on sauvegarde ou plutôt on synchronise un dépot local avec un dépot distant situé sur un serveur. Ces serveurs qui contiennent des dépots distants, on les appellent des “forges” et par exemple vous avez certainement entendu parler de Github. Nous on va se servir de Gitlab, gitlab.com qui est une autre forge très connue, et qui est totalement ouverte et gratuite.

Installation de Git

D’abord il faut savoir comment installer Git

  • si vous êtes sous MacOS, git est pré-installé
  • si vous utilisez un Linux/Debian, il faut taper la commande sudo apt install git
  • si vous êtes sous Windows, avec WSL il faut taper la même commande ‘apt install’

Sous windows, en dehors de WSL, il y a l’excellent Git Bash –> (VISUEL) https://git-scm.com/download/win Il installe Git, mais surout il fournit un shell de type Unix avec bash et la plupart des commandes unix préinstallées, donc c’est un peu une alternative à WSL

Création d’un projet Git

Pour commencer il faut déjà créer un projet Git. Je commence par créer le répertoire qui va être géré par git:

mkdir myproj
cd myproj

Ensuite il suffit de taper : git init On a l’impression qu’il ne s’est rien passé, que le répertoire est vide : ls mais en réalté il y a eu création d’un répertoire caché appelé ‘.git’ : ls -la. C’est dans ce répertoire dont on n’a pas à savoir le contenu que sont stockées toutes les informations sur le projet, ses branches excellent.

Pour savoir quel est l’état de mon projet, je tape la commande git status Là on me dit que je suis sur la branche ‘master’ et qu’il n’y a aucun commit.

Création des raccourcis courants

Une première chose qu’on va faire, c’est de définir les raccourcis les plus communs aux commandes git fréquentes. Pour ça il faut taper la commande git config --global alias.st status Maintenant il suffit de taper git st à la place de git status

Voilà la liste des raccoucis les plus fréquents généralement utilisés par la communauté:

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit

Création d’un compte sur gitlab.com

Il faut d’abord se créer un compte en allant sur hptps://gitlab.com ; on clique sur’register’.

https://gitlab.com

L’usage est gratuit, on peut créer autant de répositories privés qu’on le souhaite.

Lorsqu’on vient de créer son compte gitlab, il est très utile d’y ajouter sa clé publique ssh, ça permet de faire des ‘push’ et des ‘pull’ avec le serveur Gitlab sans avoir à taper à chaque fois ses identifiants. Pour ça, il faut cliquer en haut à droite, Préférences -> SSH keys

Si vous n’avez pas de clé SSH, il faut vous en créer une :

https://docs.gitlab.com/ee/user/ssh.html#generate-an-ssh-key-pair

Workflow minimal pour Git

Git est difficile à maitriser. Ici je vais décrire un workflow d’utilisation simple, qu’il faudra utiliser pour rendre les travaux à réaliser.

J’ai représenté ce workflow sur la figure suivante, à laquelle je me référerai plusieurs fois :

https://wiki.formation-fullstack.fr/minimal/assets/images/git-workflow.svg