Créer une branche
Créer une branche git en suivant les conventions de nommage 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 - Ensuite
git config github.user - Ensuite la partie locale de
git config user.email - Ensuite
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 modifications locales, dériver une courte description du diff
- S'il n'y a pas de modifications locales, 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 |
Le comportement cassé fonctionne maintenant |
ref |
Le comportement reste le même, la structure change |
chore |
Maintenance des outils/config existants |
perf |
Même comportement, plus rapide |
style |
Visuel ou formatage uniquement |
docs |
Documentation uniquement |
test |
Tests uniquement |
ci |
Configuration CI/CD |
build |
Système de build |
meta |
Métadonnées du repo |
license |
Changements de licence |
En cas de doute : utiliser feat pour les nouvelles choses, ref pour la restructuration, chore pour la maintenance.
-
Générer
<prefix>/<type>/<short-description>. Garder<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 la branche par défaut échoue, revenir à
main, puismaster, puis la branche actuelle - Si sur une HEAD détachée, brancher depuis le commit actuel
- Si déjà sur une branche non-par défaut, brancher depuis la branche actuelle
- Ne basculer vers la branche par défaut que si l'utilisateur le demande explicitement
- Si la détection de la branche par défaut échoue, revenir à
-
É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 confirmation.