2025-11-20
Un workflow Git formalise comment une équipe collabore sur le code : modèle de branches, règles de fusion, revues et cadence des releases. Il rend le processus prévisible, sécurisé et automatisable.
Objectifs essentiels :
Important
Choisissez un workflow adapté à votre équipe, formalisez-le, automatisez-le via CI et appliquez‑le strictement.
main.feat:, fix:) — utile pour changelogs automatisés.Principe
une branche principale (main/master) et tout le monde push/pull dessus.
Developers -> commit -> push -> origin/main
Commandes typiques :
Principe
feature/x.main.main ---o-----o---------o
\ /
feature1 o-----o
Commandes :
# créer et basculer (moderne)
git switch -c feature/ma-fonctionnalite
# pousser et définir la branche distante par défaut
git push --set-upstream origin feature/ma-fonctionnalite
# pendant le travail: garder votre branche à jour avec `main`
git fetch origin
git rebase origin/main
# après review et tests (ou via PR) :
git switch main
git merge --no-ff feature/ma-fonctionnalite # ou utilisez squash via l'interface PR
git push origin mainPrincipe
main (release) et develop (intégration)feature/, release/, hotfix/main ----o----------o
\ /
develop ---o--o--o
/ \
feature1 release
Commandes (exemple simplifié) :
Principe
main, ouvrir Pull Request, revue, merge, déploiement continu.develop ni branche de release.main ---o---o---o
\ /
PR-merge
Principe
Upstream (org/repo)
^
| Pull Request
Fork (user/repo) <- clone
# clone du fork
git clone git@github.com:utilisateur/repo.git
git remote add upstream git@github.com:org/repo.git
# synchroniser (fetch + rebase upstream pour éviter les merges locaux)
git fetch upstream
git switch main
git rebase upstream/main
# pousser la branche mise à jour sur votre fork si besoin
git push origin mainPrincipe
main (ou trunk), via petites branches très courtes.main).gh) facilite La gestion des repositories, PRs, issues, releases depuis terminal, …main contre les pushes directs et exigez des revues de code via PRs../mvnw package ou ./mvnw verify) via CI pour chaque PR et à chaque merge sur main.feature/hello-<votre-login>.SayHello fournie. Votre classe doit retourner “Hello from fr.univtln.<votre-login>.hellogit.feat: add Hello from <votre-login>main.E. Bruno - Workflows Git — aperçu et comparatif