« Une branche est une copie complète du projet. »
Une branche Git est principalement une référence mobile vers un commit. Les objets déjà présents sont partagés dans la base Git.
01Observe HEAD et les références
chmod +x module3-git-branches-integration.sh
./module3-git-branches-integration.sh setup
cd /tmp/soria-git-branches-$USER/branches
git branch --show-current
git rev-parse HEAD
git show-ref --heads
HEAD indique la branche actuellement checkoutée. La branche pointe vers le commit courant.
02Crée une branche de travail
git switch -c feature/monitoring
mkdir -p docs
printf '# Monitoring notes\n' > docs/monitoring.md
git add docs/monitoring.md
git commit -m "docs: add monitoring notes"
Le préfixe décrit le type de travail. Un nom utile exprime l’intention, pas le nom de la personne.
03Retourne sur main
git switch main
git status --short --branch
ls docs 2>/dev/null || true
git log --oneline --decorate --graph --all
Le commit de monitoring existe toujours, mais il n’est pas accessible depuis main tant qu’aucune intégration n’a eu lieu.
04Crée une seconde branche indépendante
git switch -c docs/runbook
mkdir -p docs
printf '# Operations runbook\n' > docs/runbook.md
git add docs/runbook.md
git commit -m "docs: add operations runbook"
git switch main
05Mesure l’écart
git rev-list --count main..feature/monitoring
git rev-list --count main..docs/runbook
git log --left-right --graph --oneline feature/monitoring...docs/runbook
A..B sélectionne les commits accessibles depuis B mais pas A. A…B met en évidence les deux côtés depuis leur ancêtre commun.
06Inspecte sans checkout
git show feature/monitoring:docs/monitoring.md
git log --oneline main..feature/monitoring
git diff main...feature/monitoring
07Supprime seulement après vérification
git branch --merged main
git branch --no-merged main
git branch -d feature/monitoring
Dans cet état, Git refuse normalement -d car la branche n’est pas fusionnée. -D force la suppression de la référence locale et ne doit pas remplacer une vérification.
Construis deux branches courtes
Crée une branche fonctionnalité et une branche documentation depuis le même main. Fournis le graphe, leur ancêtre commun et le diff propre à chacune.
✓Ce que tu retiens
Une branche est une référence légère. Elle isole une intention, doit rester courte et se mesure par son écart avec la branche d’intégration.