git-commit

Par github · awesome-copilot

Exécute `git commit` avec analyse de message de commit conventionnel, staging intelligent et génération de message. À utiliser quand l'utilisateur demande à committer des modifications, créer un git commit, ou mentionne « /commit ». Fonctionnalités : (1) Détection automatique du type et du scope à partir des modifications, (2) Génération de messages de commit conventionnels à partir du diff, (3) Commit interactif avec possibilité de surcharger le type/scope/description, (4) Staging intelligent des fichiers pour un regroupement logique

npx skills add https://github.com/github/awesome-copilot --skill git-commit

Commit Git avec Conventional Commits

Aperçu

Créez des commits git standardisés et sémantiques en utilisant la spécification Conventional Commits. Analysez le diff réel pour déterminer le type, la scope et le message appropriés.

Format Conventional Commit

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Types de Commits

Type Objectif
feat Nouvelle fonctionnalité
fix Correction de bug
docs Documentation uniquement
style Formatage/style (pas de logique)
refactor Refactorisation de code (pas de feature/fix)
perf Amélioration de performance
test Ajouter/mettre à jour les tests
build Système de build/dépendances
ci Changements CI/config
chore Maintenance/divers
revert Revert de commit

Changements Cassants

# Point d'exclamation après type/scope
feat!: remove deprecated endpoint

# Footer BREAKING CHANGE
feat: allow config to extend other configs

BREAKING CHANGE: `extends` key behavior changed

Flux de Travail

1. Analyser le Diff

# Si des fichiers sont en staging, utiliser le diff en staging
git diff --staged

# Si rien n'est en staging, utiliser le diff du répertoire de travail
git diff

# Vérifier aussi le statut
git status --porcelain

2. Placer les Fichiers en Staging (si nécessaire)

Si rien n'est en staging ou si vous voulez regrouper les changements différemment :

# Placer des fichiers spécifiques en staging
git add path/to/file1 path/to/file2

# Staging par pattern
git add *.test.*
git add src/components/*

# Staging interactif
git add -p

Ne commitez jamais de secrets (.env, credentials.json, clés privées).

3. Générer le Message de Commit

Analysez le diff pour déterminer :

  • Type : Quel type de changement est-ce ?
  • Scope : Quelle zone/module est affectée ?
  • Description : Résumé d'une ligne de ce qui a changé (présent, mode impératif, <72 caractères)

4. Exécuter le Commit

# Une seule ligne
git commit -m "<type>[scope]: <description>"

# Multi-ligne avec body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>

<optional body>

<optional footer>
EOF
)"

Bonnes Pratiques

  • Un changement logique par commit
  • Présent : "add" au lieu de "added"
  • Mode impératif : "fix bug" au lieu de "fixes bug"
  • Référencer les issues : Closes #123, Refs #456
  • Garder la description sous 72 caractères

Protocole de Sécurité Git

  • NE JAMAIS mettre à jour la config git
  • NE JAMAIS exécuter de commandes destructrices (--force, hard reset) sans demande explicite
  • NE JAMAIS sauter les hooks (--no-verify) sauf si l'utilisateur le demande
  • NE JAMAIS forcer un push sur main/master
  • Si le commit échoue à cause d'un hook, corriger et créer un NOUVEAU commit (ne pas amender)

Skills similaires