TECHNOLOGIES / Git

Git : notre gestionnaire de versions

Git est le fondement de notre workflow de développement. Il assure la traçabilité de chaque modification, permet le travail en équipe sans friction et constitue le point d'entrée de notre chaîne CI/CD GitLab.

Cette fiche documente nos conventions de commits, notre stratégie de branches et nos bonnes pratiques de versionning.

PRÉSENTATION

Qu'est-ce que Git ?

Git est un gestionnaire de source décentralisé gratuit et open source, créé en 2005 par Linus Torvalds (le père de Linux). Il a révolutionné la gestion du code source à l'époque de SVN et ouvert la voie à l'explosion de plateformes comme GitHub et GitLab.

Git s'adapte aux petits projets comme aux projets d'envergure. Chaque développeur possède une copie complète du dépôt sur son poste et peut travailler de façon indépendante, hors connexion. Une fois satisfait de son travail, il réalise un commit avec un message explicite et pousse ses modifications sur le dépôt distant.

Git intègre un système de branches qui permet d'isoler les modifications simplement, ainsi que des fonctionnalités de fusion (merge) et de résolution de conflits qui facilitent la mise en commun des évolutions avant leur déploiement. Les IDEs modernes comme PHPStorm intègrent directement les fonctionnalités Git dans leur interface pour une productivité maximale au quotidien.

Logo Git

POURQUOI GIT

Ce qui en fait le socle de notre développement

Git est présent sur tous nos projets sans exception. Voici les six raisons pour lesquelles nous ne pourrions pas travailler sans lui.

Historique complet et traçabilité

Chaque modification est enregistrée avec son auteur, sa date et son contexte. On peut retrouver à tout moment pourquoi une ligne a été écrite, qui l'a modifiée et dans quel cadre même des années après.

Travail en parallèle sans conflit

Les branches permettent à plusieurs développeurs de travailler simultanément sur des fonctionnalités différentes sans se bloquer mutuellement. Git gère la fusion et signale les vrais conflits.

Retour arrière fiable

Chaque commit est un point de restauration. En cas de régression ou de mauvaise direction, on peut revenir à n'importe quel état antérieur du code en quelques secondes sans perdre le travail réalisé en parallèle.

Revue de code sur les diffs

Git produit des diffs précis qui montrent exactement ce qui a changé entre deux états. La revue de code dans GitLab s'appuie sur ces diffs pour cibler les commentaires ligne par ligne.

Tags sur les librairies, commit déployé sur les projets

Nos librairies partagées sont taguées en Semantic Versioning : d'autres projets les installent, le numéro est un contrat. Les applications client, déployées en continu, n'ont pas de tag de release : le commit déployé est écrit sur l'application, et Sentry le reçoit pour corréler une erreur à un commit précis.

Socle de la CI/CD

Chaque push déclenche le pipeline GitLab CI. Git est le point d'entrée de toute notre chaîne d'automatisation : tests, analyse statique, build et déploiement sont tous pilotés par les événements Git.

NOTRE USAGE

Comment nous utilisons Git chez SmartBooster

Nos conventions Git garantissent un historique lisible et un workflow fluide quelle que soit la taille de l'équipe.

Le ticket en tête du message de commit

Nos commits suivent le format [ID du ticket] : description, et la description d'une correction commence par fix. Un commit renvoie donc à la demande qui l'a provoqué, avec son contexte et sa recette, plutôt qu'à un incrément de version. C'est l'une des trois règles du message de commit posées dans nos conventions de code.

Branches courtes et ciblées

Une branche = une fonctionnalité ou un correctif. Les branches feature/ et fix/ sont mergées rapidement pour limiter les conflits et garder un historique lisible, hotfix/ étant réservé au bug de production qui ne peut pas attendre.

Rebase avant merge

On rebase la branche sur main avant de créer la MR. L'historique reste linéaire, les conflits sont résolus tôt et le pipeline tourne sur un code à jour.

Pour aller plus loin

Approfondir votre réflexion

Vous avez un projet ?

Contactez-nous pour savoir comment nous pouvons vous aider.