2026-10-16
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.make test, mvn verify, pytest, etc.) via CI pour chaque PR et à chaque merge sur main.Dans le dépôt distant que l’enseignement fournit — vous deux y avez un accès en écriture — et indépendamment de son contenu :
contributions/README.md doit exister sur main avec une ligne Dernière mise à jour : …. Si le dépôt fourni ne le contient pas, l’un des deux l’y ajoute directement et le pousse ; l’autre fait git pull.main (git switch -c <pseudo>-contrib).contributions/<pseudo>.md décrivant une chose apprise du guide Git ; puis chacun modifie de son côté la ligne Dernière mise à jour : … de contributions/README.md pour y mettre son pseudo. On committe, on pousse, on ouvre une pull request.git pull origin main — les marqueurs de conflit apparaissent alors dans votre copie de travail.git add pour marquer la résolution, commit de merge.git restore <fichier> annule la modification, git switch <votre-branche> vous remet en place — pas de checkout (gh pr checkout, lui, est un verbe du CLI GitHub, sans rapport avec git checkout).Ce que ce exercice ancre :
switch/restore là où l’ancien checkout faisait tout.E. Bruno - Workflows Git — aperçu et comparatif