Versionner son code avec Git

Versionner son code avec Git

30 avril 2021

Git est un projet open source avancé, développé en 2005 par Linus Torvalds, le créateur bien connu du noyau du système d'exploitation Linux. Git crée une copie du code en un dépôt qui contient l'historique complet de tous les changements.

L'un des avantages de Git est son système de "branche". Il permet d'isoler chaque modification du code principal. Si un développeur doit commencer une nouvelle fonctionnalité sur le projet, il pourra créer une nouvelle branche contenant le code source du projet, mais qui sera distincte de la branche principale. Il pourra apporter toutes les modifications ou ajouts nécessaires sans affecter le code principal.

Avant de nous lancer dans la création d'une nouvelle branche, nous devons installer Git sur notre machine.

Installer Git sur Mac

Il existe différentes façons d'installer Git sur un Mac.
Avant, vérifiez qu'il ne soit pas déjà installé sur votre machine. Pour cela, ouvrez un terminal et tapez la commande suivante :

git --version

Si un numéro de version vous est retourné, alors Git est installé, bravo !?

Depuis le site officiel

Rendez-vous sur le site officiel et téléchargez le DMG : https://git-scm.com

Depuis Homebrew

Depuis un terminal de commande, lancez la commande suivante :

brew install git

Homebrew doit être installé sur votre ordinateur, sinon cette commande ne fonctionnera pas.
Pour installer Homebrew : https://brew.sh/index_fr

Depuis MacPorts

Depuis un terminal de commande, lancez les commandes suivantes :

sudo port selfupdate
port search git
port variants git
port install git +bash_completion+credential_osxkeychain+doc

Configurer Git

Une fois Git installé et prêt à l'emploi, vous devez le configurer pour la suite. Pour cela, vous allez renseigner votre nom et votre adresse email. Toujours depuis un terminal de commande, lancez :

git config --global user.name "Jane Doe"
git config --global user.email "jane@doe.com"
Évidemment, remplacez les valeurs entre guillemets par les vôtres.

Installer Git sur Windows

Téléchargez le programme d'installation pour Windows : https://git-scm.com/
Configurez Git depuis votre terminal avec les lignes suivantes :

git config --global user.name "Jane Doe"
git config --global user.email "jane@doe.com"
Évidemment, remplacez les valeurs entre guillemets par les vôtres, oui là aussi.

Installer Git sur Linux

Depuis votre terminal, lancez les commandes suivantes :

sudo apt-get update
sudo apt-get install git

Configurez Git depuis votre terminal avec les lignes suivantes :

git config --global user.name "Jane Doe"
git config --global user.email "jane@doe.com"
Évidemment, remplacez les valeurs entre guillemets par les vôtres, oui, oui, encore ici aussi.

Créer un nouveau dépôt

Avant de se lancer dans les commandes Git, il faut créer un nouveau dépôt où toutes les modifications seront versionnées. Pour cela, placez-vous dans le dossier de votre projet et lancez la commande :

git init

Cette commande va créer un dossier à la racine de votre projet nommé ".git".
Il est possible que ce dossier soit "invisible".

Cloner un dépôt existant

À l'inverse, si le dépôt existe déjà et que vous souhaitez le récupérer sur votre ordinateur, ouvrez le terminal et placez-vous à l'endroit où le projet doit être cloné. Alors, on utilisera la commande :

git clone

Cette commande attend des paramètres, car en l'état, elle ne clonera rien du tout. Il faut lui préciser quel projet on souhaite récupérer.
Pour cela, on lui indiquera soit une URL en https ou une URL en SSH. Cette URL se récupère sur le site contenant le projet.

Dans notre exemple, l'URL pourrait ressembler à :

git clone https://gitlab.com/team/project.git

En SSH :

git clone git@gitlab.com:team/project.git

L'une et l'autre vous demanderont peut-être de vous connecter si jamais le dépôt est privé, dans ce cas, entrez vos identifiants vous permettant de vous connecter à votre compte. Si vous récupérez le projet depuis GitHub, vous devrez vous connecter avec votre compte GitHub, bien évidemment.

Enregistrer les changements

Maintenant que votre projet est cloné ou initialisé, vous allez pouvoir faire un commit de tous les changements apportés à vos fichiers, que ce soit l'ajout d'un fichier, une suppression ou une modification.

Dans votre projet, créez un fichier nommé "README.md", ouvrez ce fichier, ajoutez le texte suivant : "Ce fichier sera ma documentation à venir...". Enregistrez-le, enfin fermez-le.

Maintenant, il faut ajouter ce fichier aux changements apportés au projet. Toujours depuis le terminal, lancez cette commande :

git add README.md

Vous avez ajouté ce fichier à la zone de stagging du dépôt, c’est-à-dire à la zone de transit : pour le moment, il est en attente d'envoi sur le dépôt. Vous ne pourrez rien envoyer tant que vous n'aurez pas effectué un commit, c'est-à-dire ajouté un message décrivant le travail effectué :

git commit -m "Résumé de mon travail"

Attends, je dois faire ces lignes pour chaque fichier que je modifie, supprime ou ajoute quelque chose !? ?
En vérité, non ! Dans ce cas, si vous avez plusieurs modifications à "commiter", une seule commande sera nécessaire :

git add --all
git commit -m "Résumé de mon travail"

Pratique quand même. ?

Mettre à jour le dépôt

Dans le cas d'un dépôt initialisé sur votre ordinateur, il convient de spécifier sur quel serveur Git vos modifications doivent aller. Vous allez lui indiquer l'emplacement sur lequel travailler :

git remote add alias_du_remote https://gitlab.com/team/project.git

Une fois cette étape effectuée, vous pourrez mettre à jour votre projet !

git push alias_du_remote master

Décomposons rapidement cette commande. Nous lui passons deux paramètres :

  1. Le premier est le nom du "remote", soit de la connexion que l'on utilise pour dire à Git où envoyer nos modifications. Dans cet exemple, il s'agit du nom choisi lors de l'utilisation de la commande git remote plus haut.
  2. Le second est le nom de la branche que l'on souhaite mettre à jour. Dans cet exemple, il s'agit de la branche "master", soit le nom de la branche principale la plupart du temps.

Si jamais vous avez cloné votre projet et que vous n'avez pas changé de branche, alors la commande sera :

git push origin master

Récupérer des modifications

Si vous travaillez à plusieurs, vous allez avoir besoin de récupérer les modifications apportées par vos collègues.

À savoir
Vous devez effectuer un "commit" avant de récupérer les modifications en ligne, sinon vous aurez le droit à une belle erreur ?

La commande se veut simple :

git fetch

Créer une branche

Comme cité en début d'article, l'avantage de Git est la création de branches pour pouvoir travailler sans venir compromettre le code d'origine.

Il est possible de créer autant de branches que nécessaire, à vous de voir !

git branch nom_de_la_branche

Une nouvelle branche sera créée en dupliquant le code de la branche sur laquelle vous vous trouvez.
Vous pouvez dorénavant vous y rendre avec la commande suivante :

git checkout nom_de_la_branche

Pour aller plus vite, vous pouvez créer la branche et y basculer dessus dès sa création :

git checkout -b nom_de_la_branche

Cet article a permis de voir les bases des commandes Git.
Si vous souhaitez aller plus loin, je vous conseille la documentation officielle : https://git-scm.com/docs