Créer une branche
Créer une branche git en suivant les conventions de nommage de Sentry. Gardez ce workflow non-interactif à moins que l'utilisateur ne demande explicitement de choisir le nom manuellement.
Workflow
-
Résoudre le préfixe :
- D'abord essayer
gh api user --jq .login - Puis
git config github.user - Puis la partie locale de
git config user.email - Puis
whoami - Nettoyer en minuscules ASCII, chiffres et tirets ; si vide, utiliser
local
- D'abord essayer
-
Résoudre la description du travail :
- Si
$ARGUMENTSest présent, l'utiliser - Sinon inspecter :
git diff git diff --cached git status --short - S'il y a des changements locaux, dériver une courte description du diff
- S'il n'y a pas de changements locaux, utiliser une description générique comme
repo-maintenance,tooling-update, ouwork-in-progress
- Si
-
Classifier le type de branche :
| Type | Utiliser quand |
|---|---|
feat |
Nouvelle fonctionnalité |
fix |
Comportement cassé qui fonctionne maintenant |
ref |
Comportement identique, structure change |
chore |
Maintenance de l'outillage/config existant |
perf |
Même comportement, plus rapide |
style |
Visuel ou formatage uniquement |
docs |
Documentation uniquement |
test |
Tests uniquement |
ci |
Config CI/CD |
build |
Système de build |
meta |
Métadonnées du repository |
license |
Changements de licence |
En cas de doute : utiliser feat pour les nouveautés, ref pour la restructuration, chore pour la maintenance.
-
Générer
<prefix>/<type>/<short-description>. Maintenir<short-description>en kebab-case, ASCII uniquement, et idéalement 3 à 6 mots. -
Choisir la base sans demander :
git branch --show-current git remote | grep -qx origin && echo origin || git remote | head -1 git symbolic-ref refs/remotes/<remote>/HEAD 2>/dev/null | sed 's|refs/remotes/<remote>/||' | tr -d '[:space:]'- Si la détection de branche par défaut échoue, se rabattre sur
main, puismaster, puis la branche actuelle - Si on est sur un HEAD détaché, brancher à partir du commit actuel
- Si déjà sur une branche non-par défaut, brancher à partir de la branche actuelle
- Ne basculer vers la branche par défaut que si l'utilisateur le demande explicitement
- Si la détection de branche par défaut échoue, se rabattre sur
-
Éviter les collisions en ajoutant
-2,-3, et ainsi de suite jusqu'à ce que le nom soit inutilisé localement et à distance. -
Créer la branche :
git checkout -b <branch-name>Rapporter le nom final de la branche, mais ne pas s'arrêter pour une confirmation.