Skip to content

Les Règles d'Or pour un Git Sain

Suivre un modèle de branche est la première étape. Adopter un ensemble de bonnes pratiques est ce qui rend un workflow vraiment efficace et scalable. Ce sont les règles et astuces que nous suivons pour garder notre historique propre, notre collaboration fluide et notre environnement de production en sécurité.

Les Commandements du Workflow

Ces règles gouvernent comment nous abordons notre travail au quotidien.

I. Une Tâche, Une Branche, Un Commit

On est tous passés par là. Il est tard, vous êtes fatigué, et vous voulez juste fourrer trois corrections de bugs et une nouvelle fonctionnalité dans un seul et même commit "fourre-tout". Ne le faites pas.

Ce gain de temps à court terme mène à des douleurs à long terme. Et si vous deviez livrer en urgence l'un de ces bugs alors que la fonctionnalité n'est pas prête pour la production ? Vous ne pouvez pas les séparer.

La Règle d'Atomicité

Créez toujours une branche distincte pour chaque tâche ou correctif individuel. Lors de la fusion, elle devrait idéalement être "squashée" en un seul commit focalisé sur la branche main. Cela rend votre travail facile à relire, tester et annuler si besoin.

II. Gardez les Branches Éphémères

Une branche de fonctionnalité doit être un espace de travail temporaire, pas une résidence permanente. Plus une branche vit longtemps, plus elle s'éloigne de main, menant à un risque accru de conflits de fusion et de cauchemars d'intégration.

Découpez vos "user stories" en les plus petites unités livrables possibles - un "Minimal Viable Change" (MVC). Cela conduit à :

  • ✅ Des revues de code plus petites et plus rapides.
  • 💥 Moins de conflits de fusion.
  • 🚀 Une livraison de valeur plus rapide.

III. Communiquez avec vos Commits

Vos messages de commit sont une histoire que vous racontez à votre futur "vous" et à vos coéquipiers. Faites en sorte qu'elle soit bonne. Suivez le standard des Conventional Commits pour garantir que chaque commit soit uniforme, descriptif et lisible par une machine pour les changelogs automatiques.

Sécurité & Protection

Ces règles visent à construire des garde-fous pour protéger notre code des erreurs courantes.

IV. Protégez la Branche main

La branche main est votre source de vérité. Elle doit toujours être stable et déployable. N'autorisez jamais de "push" directs dessus. Tous les changements doivent passer par une Merge Request (MR) relue et approuvée.

Comment Protéger une Branche dans GitLab
  1. Allez dans Settings > Repository > Protected Branches.
  2. Ajoutez main et d'autres branches critiques comme release/*.
  3. Réglez "Allowed to merge" sur "Maintainers" et "Allowed to push and commit" sur "No one".

Cela empêche le code non relu d'atteindre votre ligne principale. Paramètres des branches protégées sur GitLab

V. Pushez avec Intention, pas avec force

Réécrire l'historique sur votre propre branche de fonctionnalité éphémère est souvent nécessaire (ex: lors d'un rebase). Mais git push --force est un marteau-pilon qui peut supprimer des commits que d'autres ont poussés.

N'Utilisez JAMAIS git push --force

Il écrase aveuglément la branche distante et peut causer une perte de données permanente pour vos collaborateurs.

À la place, utilisez toujours git push --force-with-lease. Cette commande plus sûre vérifie si quelqu'un d'autre a poussé sur la branche depuis votre dernier pull. Si c'est le cas, le push échouera, protégeant leur travail.

Pour un push encore plus sûr, utilisez git push --force-if-includes. Cela vérifie que les commits distants sont bien présents dans votre branche locale avant de forcer le push.

VI. Gérez les Fichiers Lourds avec LFS

Git est conçu pour le texte, pas pour les gros fichiers binaires (images, vidéos, assets compilés). Stocker des binaires directement dans Git gonfle la taille du dépôt de manière exponentielle, car il stocke une copie complète du fichier pour chaque changement. Localement, votre dépôt doit aussi télécharger et stocker toutes les versions de chaque binaire présentes dans son historique.

Utilisez Git LFS (Large File Storage) à la place. Il remplace les gros fichiers dans votre dépôt par de minuscules pointeurs texte, tout en stockant le contenu réel du fichier sur un serveur séparé. Lorsque vous consultez un commit, LFS ne récupère qu'une seule version du binaire : celle référencée par le pointeur, gardant ainsi votre dépôt local petit et rapide.

shell
# Installez LFS une fois par machine
git lfs install

# Dans votre projet, suivez les types de fichiers
git lfs track "*.psd"
git lfs track "*.mp4"

# Ajoutez le fichier de suivi à git
git add .gitattributes
git commit -m "chore: Stocke les fichiers lourds avec Git LFS"

Améliorez Votre Outillage

Ces astuces visent à personnaliser votre environnement pour le rendre plus rapide et plus sûr.

VII. Maîtrisez d'Abord la Ligne de Commande

Les interfaces graphiques (GUI) comme GitKraken ou Fork sont excellentes pour visualiser l'historique, mais elles peuvent cacher ce que Git fait réellement. Utiliser une GUI sans comprendre les commandes sous-jacentes, c'est comme conduire une voiture sans savoir à quoi servent les pédales.

Commencez par la ligne de commande pour apprendre les fondamentaux. Cela vous donne un contrôle plus fin et une compréhension plus profonde. Une fois à l'aise, utilisez une GUI pour ses points forts (visualisation, préparation de lignes individuelles), mais sachez toujours quelle commande vous exécutez réellement.

VIII. Personnalisez Votre git config

Faites en sorte que Git travaille pour vous en configurant des options par défaut et des alias intelligents.

Astuces git config Géniales

Exécutez ces commandes pour les définir globalement pour tous vos projets.

Faire en sorte que git pull utilise toujours rebase

Évite les commits de fusion inutiles sur vos branches de fonctionnalités locales.

shell
git config --global pull.rebase true

Empêcher Git de modifier les fins de ligne

Évite les changements fantômes lors de la collaboration entre Windows et macOS/Linux.

shell
git config --global core.autocrlf false

Créer un alias "force push" sécurisé

Tapez git pf au lieu de cette longue commande de push sécurisée.

shell
git config --global alias.pf 'push --force-with-lease --force-if-includes'

Maintenant, vous pouvez simplement lancer git pf !

IX. Apprivoisez Votre GUI

Si vous utilisez une interface graphique, configurez-la pour qu'elle fonctionne avec le Git de votre système, pas contre lui.

Configuration Essentielle de GitKraken

1. Utilisez l'exécutable Git de votre système GitKraken embarque sa propre version de Git, qui pourrait ignorer vos réglages globaux .gitconfig.

  • Allez dans File > Preferences > Experimental.
  • Cochez "Use local Git executable" et pointez vers l'installation Git de votre système.

2. Définissez le bon chemin pour sh.exe Cela prévient les problèmes avec les Git Hooks sous Windows.

  • Allez dans File > Preferences > General.
  • Descendez jusqu'à "Path to sh.exe" et assurez-vous qu'il pointe vers le sh.exe dans votre dossier Git\bin.