Conventions Git
Ce fichier décrit les conventions Git utilisées dans le projet.
Format des Branches
| Type | Format | Exemple |
|---|---|---|
| Feature | feat/description-courte | feat/filtre-secteur-career |
| Bugfix | fix/description-courte | fix/jwt-expiration-401 |
| Hotfix prod | hotfix/description | hotfix/login-broken |
| Release | release/version | release/1.2.0 |
Format des Commits
Format : type(scope): description courte
Types de commits
| Type | Usage |
|---|---|
feat | Nouvelle fonctionnalité |
fix | Correction de bug |
docs | Documentation uniquement |
refactor | Refactoring sans changement fonctionnel |
test | Ajout ou modification de tests |
chore | Maintenance, 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 --forcesurmainoustaging - ✅ 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ément | Statut |
|---|---|
| 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 :
- Settings → Branches → Add branch protection rule
- Branch name pattern :
main - Cocher : Require a pull request before merging
- 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 testpasse (frontend) - Vérifier que
npm run lintpasse (frontend) - Vérifier que
npm run buildréussit (frontend) - Vérifier que
pytest -vpasse (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