Exemple du dsv file show

Git - commandes & bonnes pratiques

Le 21 janvier 2024 à 23:19

Guide des bonnes pratiques Git et cheat sheet des commandes

Garder un historique Git propre et lisible est essentiel pour travailler efficacement en équipe. Retrouvez dans ce guide les normes de nommage universelles (Conventional Commits, Git Flow) ainsi que les commandes fondamentales du quotidien.


🛠️ Commandes fondamentales

1. Récupération et synchronisation (pull)

Toujours privilégier le rebase pour éviter les commits de merge inutiles et maintenir un historique linéaire.

git pull --rebase
  • git pull : effectue un fetch suivi d'un merge.
  • --rebase : rejoue vos commits locaux par-dessus la branche distante à jour pour conserver un historique propre.

2. Validation des modifications (commit & push)

// Ajouter les fichiers modifiés au staging
git add .

// Ou cibler un fichier précis 
git add src/app/app.component.ts

// Créer un commit normé
git commit -m "feat(auth): add JWT token refresh mechanism"

// Publier les commits
git push

3. Inspection et historique (log)

Visualiser l'arbre des commits de manière compacte et lisible :

git log --graph --oneline --all

4. Correctifs rapides

Renommer le dernier commit local ou y ajouter des modifications oubliées :

git commit --amend

5. Gestion des branches

Action Commande
Lister les branches locales git branch -l
Lister les branches distantes git branch -r
Lister toutes les branches git branch -a
Supprimer une branche locale git branch -D <nom_branche>
Supprimer une branche distante git push origin -d <nom_branche>
Nettoyer les références distantes obsolètes git remote prune origin

📐 Bonnes pratiques et conventions

Nommage des branches

Les noms de branches doivent utiliser le kebab-case (mots en minuscules séparés par des tirets) et être préfixés par leur catégorie :

  • feature/<description> : ajout ou modification de fonctionnalité.
    • Exemple : feature/init-database, feature/add-user-crud-ui
  • bugfix/<description> : correction d'un bug identifié en développement.
    • Exemple : bugfix/header-user-connected
  • hotfix/<description> : correction critique immédiate en production.
    • Exemple : hotfix/fix-payment-gateway-timeout
  • test/<description> : expérimentation ou travail en cours (WIP).
    • Exemple : test/poc-angular-signals

Convention de nommage des commits (Conventional Commits)

Format standard :

<type>(<scope>): <description_in_english>

Types autorisés

  • feat : nouvelle fonctionnalité pour l'utilisateur.
  • fix : correction de bug.
  • refactor : modification du code sans changement de comportement (ni fix, ni feat).
  • perf : amélioration des performances.
  • style : mise en forme, espaces, point-virgules manquants (aucun impact sur le code exécuté).
  • docs : rédaction ou mise à jour de documentation.
  • test : ajout ou correction de tests unitaires/intégration.
  • build : modifications affectant le système de build ou les dépendances (npm, maven, etc.).
  • ci : modifications des fichiers/scripts d'intégration continue (GitHub Actions, GitLab CI, etc.).
  • chore : tâches de maintenance diverses ou initialisation de projet.
  • revert : annulation d'un commit précédent.

Scope & Breaking Changes

  • Scope (optionnel) : précise le composant ou domaine impacté (auth, api, database, ui).
  • Breaking Change : pour indiquer un changement majeur/incompatible, ajoutez un ! après le scope ou le type.
    • Exemple : feat(api)!: drop support for v1 endpoints