71 lines
2.1 KiB
Markdown
71 lines
2.1 KiB
Markdown
# 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/<sujet>` : correctif
|
||
- `feat/<sujet>` : nouvelle fonction
|
||
- `ops/<sujet>` : 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-<YYYYmmdd-HHMMSS>` (déjà fait).
|
||
- Snapshots prod : `prod-snapshot-<YYYYmmdd-HHMMSS>` 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/<slug>
|
||
# edits...
|
||
git add -A
|
||
git commit -m "fix: <message>"
|
||
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. |