Utiliser git pour gérer le versioning de vos projets


Cet article a pour objectif de vous présenter brièvement git et son utilisation afin de gérer le versioning de vos projets.

Qu’est-ce que le versioning et git ?

Le versioning, ou gestion de versions, est le processus permettant de sauvegarder les différents états de vos fichiers, afin par exemple de revenir à une version donnée à tout moment ou bien encore aux développeurs de travailler en parallèle sur le même projet.

Quant à git, il s’agit d’un système de versioning gratuit et open source, créé en 2005 par Linus Torvalds pour le développement du noyau Linux. La particularité notable de git est qu’il est gratuit, open source, performant et simple d’utilisation, ce qui fait de lui le système de gestion de versions le plus utilisé au monde.

Comment installer git ?

La manière d’installer git dépend de votre système d’exploitation, voici donc la procédure à suivre pour les principales distributions :

Sous Linux (pour les distributions basées sur Debian, telle que Ubuntu) :

Il suffit de lancer la commande :

Sous MacOS :

Exécuter la commande suivante :

Si git n’est pas détecté sur votre machine, votre système vous proposera alors de l’installer.

Sinon, vous pouvez également télécharger l’installateur binaire depuis le site officiel https://git-scm.com/download/mac.

Sous Windows :

Il existe également plusieurs manières d’installer git sous Windows, mais vous pouvez simplement télécharger et exécuter l’installateur à partir du lien suivant https://git-scm.com/download/win.

Une fois git installé, vous devez paramétrer votre identité, pour permettre de vous identifier en tant qu’auteur des modifications. Pour cela, il faut renseigner votre nom et adresse mél :

Comment utiliser git ?

Editeurs

Il y a plusieurs manières d’utiliser git, par exemple via :

  • L’invite de commandes de votre système d’exploitation.
  • Un éditeur textuel (Emacs, Git BASH, Notepadd++, etc).
  • Un éditeur visuel (Git GUI, Visual Studio, etc). La quasi-totalité des IDE (Environnements de Développement) propose une intégration de git, vous permettant ainsi de gérer directement depuis ceux-ci les versions de vos fichiers.

Pour la suite de cet article, nous utiliserons l’invite de commande de votre système d’exploitation.

Dépôt git

Git utilise ce que l’on appelle des dépôts afin de gérer les versions de vos projets.

Vous pouvez obtenir un dépôt git de deux façons :

  • En initialisant un nouveau dépôt git dans un répertoire local n’utilisant pas encore de système de versioning :

Pour cela, il suffit de vous rendre dans le répertoire désiré et de lancer la commande :

  • En clonant un dépôt git existant sur votre machine :

Il existe plusieurs façons de cloner un répertoire, en fonction notamment de la manière dont le dépôt à cloner est stocké. Par exemple, s’il est hébergé sur gitHub, vous pouvez utiliser la commande suivante à partir de l’endroit où vous souhaitez cloner le dépôt :

 est à remplacer par le nom de votre projet.

Pour vérifier que votre projet est bien pris en charge dans un dépôt git, vous pouvez vérifier la présence d’un sous répertoire intitulé

(celui-ci peut être masqué par défaut par votre système d’exploitation, il suffit alors d’afficher les éléments masqués).

Branches

Comme un grand nombre de systèmes de gestion de versions, git propose une forme de gestion à l’aide de branches.

Vous pouvez ainsi créer plusieurs branches, chacune permettant de diverger de la ligne principale de développement, pour éviter par exemple d’impacter l’état actuel du logiciel.

La branche principale par défaut est la branche master.

Pour créer une nouvelle branche intitulée

, il suffit de lancer la commande :

Maintenant, pour basculer vers cette nouvelle branche, nous pouvons lancer la commande :

Pour plus d’informations sur le fonctionnement des branches git, veuillez-vous référer au lien suivant : https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell.

Une fois que vous êtes sur la branche désirée, vous pouvez commencer à effectuer vos modifications. Pour la suite de cet article, nous allons revenir travailler exclusivement sur la branche master :

Etats des fichiers

Chaque fichier de votre projet peut être dans deux états : tracked (suivis) ou untracked (non suivis).

Les fichiers suivis sont ceux déjà enregistrés dans le dernier snapshot (instantané), ceux qui sont déjà connus par git. Ils peuvent être unmodified (inchangés), modified (modifiés) ou bien staged (indexés).

Les fichiers non suivis sont tous ceux qui n’appartiennent pas au dernier snapshot, c’est-à-dire ceux qui ne sont pas encore connus par git.

Voici ci-dessous un schéma résumant le cycle de vie des fichiers :

Cycle de vie des états des fichiers :

Vous pouvez vérifier l’état des fichiers à partir de la commande :

Dans le cas ci-dessus, aucun fichier n’a été ajouté, modifié ou supprimé, la branche master est donc à jour.

Admettons que nous avons maintenant ajouté un fichier README, en relançant la commande, nous obtenons alors :

Afin de dire à git de suivre ce nouveau fichier, il suffit d’exécuter la commande :

En relançant la commande git status, nous avons alors :

Concernant les fichiers suivis ayant eu une modification, il suffit d’utiliser également la commande

, illustrée par cette modification d’un fichier nommé CONTRIBUTING.md :

Valider les modifications

Maintenant que nous avons terminé les modifications souhaitées, nous pouvons effectuer un commit afin de les valider. Pour cela, il faut utiliser la commande :

Votre éditeur configuré par défaut s’ouvre alors, vous demandant de renseigner un message de validation (de préférence court mais concret) afin de rapidement savoir sur quoi porte nos modifications :

En quittant votre éditeur, git crée un commit (une validation) avec ce message.

Vous pouvez également directement préciser votre message avec la commande git commit, tel que :

Dépôt distant

Afin de pouvoir collaborer sur un même projet git, vous devez utiliser un dépôt distant, qui centralisera toutes les branches et modifications effectuées sur celles-ci. Il existe un très grand nombre de solution pour héberger vos dépôts git (en ligne ou localement), tels que : gitHub, gitLab, BitBucket, Microsoft Azure DevOps, Source Forge et bien d’autres encore. Ces solutions peuvent être aussi bien totalement gratuites que payantes, ou varient en fonction de l’utilisation, du nombre de collaborateurs, du chiffre d’affaire, de la visibilité du projet, etc.

Pour plus de détails sur la tarification et l’utilisation de ces services d’hébergement, il est préférable de se rendre directement sur les sites web de chacune de ces solutions.

Mot final

Git est un ensemble d’outils permettant de gérer facilement les versions de vos fichiers et de faciliter le travail collaboratif entre développeurs.

Cet article ne présente que les principales lignes directrices de ce qu’est le versioning, git et son utilisation. Pour plus d’information, veuillez-vous référer à la documentation officielle https://git-scm.com/doc.