🚀 Git pour les développeurs : bases, bonnes pratiques et commandes modernes
1. Introduction
Git est aujourd’hui l’outil de versionnement incontournable pour tout développeur. Il permet de travailler à plusieurs sans écraser le travail des autres, de garder un historique clair et de revenir facilement en arrière en cas de problème.
Pour en tirer le meilleur parti, il faut connaître les bases, adopter de bonnes pratiques comme les Conventional Commits, et utiliser les commandes modernes telles que git switch
et git restore
.
2. Les bases indispensables de Git
Commande | Description |
---|---|
git init | Initialise un dépôt Git dans un dossier existant. |
git clone <url> | Copie un dépôt distant en local. |
git status | Montre l’état actuel du dépôt. |
git add <file> | Ajoute un fichier à l’index (staging). |
git commit -m "message" | Crée un commit. |
git branch | Liste les branches. |
git switch <branch> | Change de branche. |
git switch -c <new-branch> | Crée et bascule sur une nouvelle branche. |
git merge <branch> | Fusionne une branche dans celle en cours. |
git pull | Récupère et fusionne les changements distants. |
git push | Envoie vos commits vers le dépôt distant. |
git stash | Met de côté temporairement vos modifications en cours sans les committer, pour travailler sur autre chose. |
git switch
pour changer de branche et git restore
pour restaurer des fichiers plutôt que git checkout
. Utilisez git stash
pour mettre temporairement de côté vos modifications en cours sans les valider, afin de pouvoir travailler sur autre chose puis les récupérer plus tard.3. Conventional Commits
Les Conventional Commits définissent une syntaxe claire pour nommer vos commits.
<type>(scope?): <description>
[body - optionnel]
[footer - optionnel]
Le scope peut être un composant/module (ex: auth, api, ui) ou un numéro de ticket selon votre contexte de travail (ex: JIRA-123, #42).
feat
→ ajout de fonctionnalitéfix
→ correction de bugdocs
→ documentation uniquementstyle
→ modifications superficielles du code (indentation, espaces, formatage, renommage, etc.) sans impact sur la logique ou le comportement. Utilisez aussistyle
pour les changements de CSS ou de styles visuels (ex : mise à jour de classes, couleurs, responsive, etc.)refactor
→ amélioration ou restructuration du code sans ajout de fonctionnalité ni correction de bug (ex : simplification d’un algorithme, découpage de fonctions, extraction de composants, etc.)test
→ ajout ou modification de testschore
→ tâches diverses (maintenance, configuration, mise à jour de dépendances, scripts, etc.)
feat(auth): add Google OAuth login
fix(api): correct pagination bug
docs(readme): add setup instructions
4. git switch vs git checkout
git checkout
servait à la fois à changer de branche et restaurer des fichiers.
git switch
→ naviguer ou créer des branchesgit restore
→ restaurer des fichiers
git switch develop
git switch -c feature/login-page
git restore src/app.js
5. Git Rebase
git rebase
permet de réappliquer vos commits au-dessus d’une autre branche pour un historique linéaire.
merge
→ conserve tout l’historiquerebase
→ réécrit pour un historique linéaire
git switch feature/login-page
git rebase develop
Ici, on place les commits de la branche feature/login-page
au-dessus de develop
pour obtenir un historique plus linéaire et propre.
Pensez à vérifier que votre branche cible (develop
) est bien à jour avant de rebase pour éviter les régressions.
Avant de créer une merge request (MR), il est courant de rebaser votre branche de fonctionnalité sur develop
pour résoudre d'éventuels conflits, pousser les modifications sur le repo distant et ainsi proposer une MR avec un historique propre et à jour.
6. Bonnes pratiques
- Commits petits et significatifs
- Messages en anglais + Conventional Commits
- Préférer
switch
etrestore
- Utiliser
rebase
en local pull
avant de travaillerpush
régulièrement- Utiliser
stash
pour mettre de côté temporairement vos changements