Aller au contenu principal

Conventions Git

Ce fichier décrit les conventions Git utilisées dans le projet.

Format des Branches​

TypeFormatExemple
Featurefeat/description-courtefeat/filtre-secteur-career
Bugfixfix/description-courtefix/jwt-expiration-401
Hotfix prodhotfix/descriptionhotfix/login-broken
Releaserelease/versionrelease/1.2.0

Format des Commits​

Format : type(scope): description courte

Types de commits​

TypeUsage
featNouvelle fonctionnalité
fixCorrection de bug
docsDocumentation uniquement
refactorRefactoring sans changement fonctionnel
testAjout ou modification de tests
choreMaintenance, dépendances

Exemples​

feat(auth): ajout du refresh token automatique
fix(career): correction du filtre niveau M2
docs(backend): mise à jour setup.md avec variable REDIS_URL

Workflow de Travail​

1. Récupérer les dernières modifications​

git checkout main
git pull origin main

2. Créer une branche​

git checkout -b feat/description-courte

3. Travailler et commiter​

git add .
git commit -m "feat(auth): description"

4. Pousser et ouvrir une PR​

git push origin feat/description-courte

5. Après review, merger et supprimer la branche​

Règles Absolues​

  • ❌ Jamais de commit direct sur main
  • ❌ Jamais de git push --force sur main ou staging
  • ✅ Toujours passer par une PR
  • ✅ Squasher les commits de fixup avant de merger

État Actuel​

Protection de branche à activer

Il n'y a pas de règles de protection de branche GitHub actives.

Voir la section "Lacunes" ci-dessous pour la procédure d'activation.

Lacunes​

ÉlémentStatut
Pre-commit hooks❌ Non configuré
CI bloquant les merges✅ Configuré
Rules de protection main❌ À configurer

Comment activer la protection de branche​

Dans chaque repo GitHub :

  1. Settings → Branches → Add branch protection rule
  2. Branch name pattern : main
  3. Cocher : Require a pull request before merging
  4. Sauvegarder

Ça prend 2 minutes par repo et évite les pushes accidentels sur main.

Bonnes Pratiques​

Avant de pusher​

  • Tester localement son code
  • Vérifier que npm test passe (frontend)
  • Vérifier que npm run lint passe (frontend)
  • Vérifier que npm run build réussit (frontend)
  • Vérifier que pytest -v passe (backend)
  • Vérifier que black --check . passe (backend)

Messages de commit​

  • Préfixer avec le type (feat, fix, docs...)
  • Être concis mais descriptif
  • Pas de commits trop gros — préférer plusieurs petits commits

Commandes Utiles​

Rebaser sur main​

git fetch origin
git rebase origin/main

Squasher des commits​

git rebase -i HEAD~3
# Changer "pick" en "squash" pour les commits à fusionner

Annuler le dernier commit (non push)​

git reset --soft HEAD~1