conventional-branch

Par github · awesome-copilot

Créez des branches Git en suivant la spécification Conventional Branch (feature/, bugfix/, hotfix/, release/, chore/). À utiliser lors de la création d'une nouvelle branche, du nommage d'une branche, ou pour vérifier si un nom de branche est conforme à la spécification.

npx skills add https://github.com/github/awesome-copilot --skill conventional-branch

Branche Conventionnelle

Créez des branches Git qui suivent la spécification Conventional Branch — une convention simple et cohérente pour nommer les branches Git.

Format du Nom de Branche

<type>/<description>

Types de Branches

Type Alias Objectif
feature/ feat/ Nouvelles fonctionnalités ou améliorations
bugfix/ fix/ Corrections de bugs
hotfix/ Corrections urgentes en production
release/ Préparation de release (points autorisés dans la version : release/v1.2.0)
chore/ Tâches sans code (dépendances, docs, config)

Branches Principales

main, master et develop sont des branches principales — elles n'utilisent pas de préfixe. Ne créez jamais de nouvelles branches avec les mêmes noms que les branches principales ; créez plutôt des branches à partir d'elles.

Règles de Nommage

  • Minuscules uniquement — pas de majuscules nulle part
  • Alphanumériques, tirets et pointsa-z, 0-9, -, .
  • Points autorisés uniquement dans les descriptions de version release/ (ex. release/v1.2.0)
  • Pas de tirets bas, espaces ou caractères spéciaux
  • Pas de tirets consécutifs (--), points (..) ou adjacence tiret-point (-. ou .-)
  • Pas de tirets ou points en début ou fin de description

Exemples Valides

main
master
develop
feature/add-login-page
feat/add-login-page
bugfix/fix-header-bug
fix/header-bug
hotfix/security-patch
release/v1.2.0
chore/update-dependencies
feature/issue-123-new-login

Exemples Invalides

Branche Problème
Feature/Add-Login Majuscules
feature/new--login Tirets consécutifs
feature/-new-login Tiret en début
feature/new-login- Tiret en fin
release/v1.-2.0 Tiret adjacent à un point
fix/header bug Espace
fix/header_bug Tiret bas
unknown/some-task Type de préfixe inconnu

Recommandations de Description

  • Utilisez kebab-case avec 2-5 mots
  • Soyez descriptif mais concis (~50 caractères total)
  • Bon : add-oauth-login, fix-header-overflow, update-ci-config
  • Mauvais : fix-bug, new-feature

Flux de Travail

Suivez ces étapes :

Étape 1 — Déterminer le Type de Branche

Demandez à l'utilisateur (si ce n'est pas déjà clair) :

  • Type de branche — par défaut feature en cas de doute
  • Description brève — à quoi sert la branche

Si l'utilisateur mentionne un numéro de ticket ou d'issue, incluez-le dans la description (ex. feature/issue-123-add-oauth).

Étape 2 — Valider le Nom

Vérifiez le nom assemblé selon les Règles de Nommage ci-dessus. Si une règle échoue, corrigez-la :

  • Mettez tout en minuscules
  • Remplacez les tirets bas et espaces par des tirets
  • Fusionnez les tirets consécutifs
  • Supprimez les tirets en début et fin

Étape 3 — Détecter la Branche de Base

Les différents repos utilisent différentes branches principales. Détectez celle utilisée par ce repo :

# Préférez la branche par défaut du remote
git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's|^origin/||'

Si rien n'est retourné, vérifiez quelle branche principale existe localement (ordre de priorité : develop, main, master) :

for b in develop main master; do
  git show-ref --verify --quiet "refs/heads/$b" && echo "$b" && break
done

Étape 4 — Créer et Basculer

git checkout <base>
git pull origin <base>
git checkout -b <type>/<description>

Étape 5 — Confirmer

Dites à l'utilisateur :

  • Le nom de la branche qui a été créée
  • Qu'il est maintenant sur la nouvelle branche
  • Rappelez-lui : git push -u origin <branch-name> quand il est prêt

Relation avec Conventional Commits

Conventional Branch complète Conventional Commits :

Conventional Branch Commit Conventionnel Typique
feature/add-login feat: add login page
bugfix/fix-header fix: header overflow on mobile
chore/update-deps chore: bump lodash to 5.0
release/v1.2.0 chore: release v1.2.0

Alignez le type de branche avec les types de commit si possible (ex. branches feature/* avec commits feat:).

Skills similaires