# WORKFLOW-GIT — branches, PR, tags (standard “main”) ## 0) Objectif - Tout le monde (toi compris) suit un protocole unique. - Zéro ambigüité entre “ce qui tourne” et “ce qui est versionné”. ## 1) Branches : politique ### main (branche de travail) - Branche par défaut du repo. - Tout changement passe idéalement par PR (même si tu es seul). ### master (legacy/compat) - Doit rester alignée sur main (si vous gardez master). - Protégée contre push accidentel (pas de force-push, pas de push direct). - N’est **pas** un axe de travail. ### branches de feature Conventions recommandées : - `fix/` : correctif - `feat/` : nouvelle fonction - `ops/` : infra, déploiement, scripts, docs ops ## 2) PR (même si tu es seul) - Créer une PR → vérifier CI (Actions) → merge. - Règle : “Prevent merge if checks fail” activée (bonne pratique). - Approvals : 0 (si tu es seul). ## 3) Tags - Tags d’archives : `archive-master-` (déjà fait). - Snapshots prod : `prod-snapshot-` si besoin. ## 4) Commandes standard (Mac) ### Se mettre parfaitement à jour en sh : git checkout main git fetch origin --prune --tags git reset --hard origin/main git clean -fd # optionnel : supprime untracked ### Publier un changement git checkout -b fix/ # edits... git add -A git commit -m "fix: " git push -u origin HEAD # PR via UI, merge ## 5) Remote case-sensitive (piège déjà rencontré) Le repo peut exister avec Owner en casse différente (ex: Archicratia vs archicratia). Standard : remote doit être : https://.../Archicratia/archicratie-edition.git Vérifier : git remote -v ## 6) NAS : pas de git natif Sur NAS, on n’installe pas forcément git dans le shell. Standard : utiliser alpine/git en conteneur (cf. OPS-SYNC-TRIPLE-SOURCE). ## 7) Interdits (pour éviter l’enfer) Éditer des fichiers du repo via FileStation “pour aller vite” (sauf hotfix d’urgence, puis backport immédiat Git). Pousser sur master (sauf opération contrôlée d’alignement). Force-push sur main.