Git n'est pas de la magie, mais un outil. Encore faut-il savoir l'utiliser
Si vous codez en JavaScript, vous avez probablement déjà vécu la situation où, après un git merge, toute la console s'illumine en rouge et les messages Slack fusent : « Qui a cassé le build ? ». Ça vous parle ? Bienvenue dans le monde où le Git workflow n'est pas qu'un ensemble de commandes, mais le fondement sur lequel repose tout le développement.
Dans cet article, nous n'allons pas aborder une théorie abstraite, mais un processus de travail réel pour une équipe de développeurs JavaScript. Vous apprendrez à organiser les branches, à configurer le code review, à ne pas avoir peur du rebase et à automatiser les tâches répétitives. C'est parti.
Pourquoi le « git add — git commit — git push » standard ne fonctionne-t-il pas en équipe ?
Lorsqu'une seule personne travaille sur un projet, le chaos dans les branches est une affaire personnelle. Mais dès qu'un deuxième, troisième, dixième développeur se connecte au dépôt, sans un workflow Git clair, l'enfer commence. Conflits, commits perdus, messages incompréhensibles comme « fix » ou « upd » — tout cela tue la productivité.
Pour les projets JavaScript (React, Node.js, Next.js), le problème est aggravé par le fait que les dépendances, les builds et les configurations changent souvent. Une seule mauvaise fusion — et vous passez une demi-journée à comprendre pourquoi npm run build a cessé de fonctionner.
Établissons donc un standard unique. Appelons-le « Git workflow propre pour une équipe JS ».
Base : le modèle de branchement (Branching Model)
Nous allons utiliser le classique Git Flow avec de petites adaptations pour la stack JavaScript moderne. Vous n'avez pas besoin de 10 types de branches. Quatre suffisent :
main— la branche de production. Seul le code stable ayant passé la revue et les tests y aboutit.develop— la branche principale de développement. Toutes les fonctionnalités y sont fusionnées.feature/*— les branches pour les nouvelles fonctionnalités. Nommez-les de manière explicite :feature/add-auth-modal.fix/*— pour les corrections de bugs. Par exemple,fix/api-timeout-error.
Cet ensemble est suffisant pour 90% des projets. Vous voulez du hardcore ? Ajoutez release/* pour la préparation des versions et hotfix/* pour les corrections urgentes en production.
Exemple : création d'une feature branch
Supposons que vous deviez ajouter un formulaire de contact en React. Ne le faites pas dans develop. Créez une branche séparée :
git checkout developgit pull origin developgit checkout -b feature/contact-formVous travaillez désormais de manière isolée. Vous pouvez casser, expérimenter, écrire du mauvais code — cela ne gênera personne.
Les commits : écrivez de manière à n'avoir pas honte
Les messages de commit sont la documentation de votre code. Si vous écrivez git commit -m "fix", vous compliquez la vie de vos collègues et de vous-même dans un mois. Adoptez les Conventional Commits. C'est un standard facile à lire et automatiquement analysé par les outils.
Format :
<type>(<scope>): <description>
[corps optionnel du commit]Types pour un projet JavaScript :
feat— nouvelle fonctionnalitéfix— correction de bugrefactor— refactoringdocs— documentationchore— tâches courantes (mise à jour des dépendances, configuration du linter)
Exemple d'un bon commit :
feat(contact-form): add form validation with Yup
- Added Yup schema for name, email, message fields- Display inline errors on blur- Disable submit button when form is invalidUn tel commit indique immédiatement : ce qui a été fait, où cela a été fait et pourquoi. Idéal pour le code review.
Code Review : n'ayez pas peur des critiques, ayez peur des bugs
Le code review n'est pas un examen, mais un moyen d'attraper une erreur avant qu'elle n'arrive en production. Dans une bonne éq