Introduction
Git est un systeme de gestion de versions distribue, cree par Linus Torvalds en 2005 pour le developpement du noyau Linux. Aujourd'hui, plus de 100 millions de developpeurs utilisent GitHub (source : GitHub, 2024), et Git est devenu un outil incontournable, meme pour les projets les plus modestes.
Pourtant, Git peut sembler intimidant pour les debutants. Ce guide vous explique les concepts essentiels de maniere progressive, avec des exemples concrets.
Pourquoi versionner son code
Sans gestion de versions, vous en etes reduit a copier des dossiers : projet-v1, projet-v2, projet-final, projet-final-VRAI. Ce systeme est fragile, confus et ne permet pas de collaboration.
Git resout ces problemes :
- Historique complet : chaque modification est enregistree avec son auteur, sa date et un message explicatif
- Retour en arriere : vous pouvez revenir a n'importe quel etat anterieur du projet
- Travail en parallele : les branches permettent de developper des fonctionnalites independamment
- Collaboration : plusieurs personnes peuvent travailler sur le meme projet sans conflit
Les concepts fondamentaux
Le depot (repository)
Un depot Git est un dossier dont l'historique est suivi. Il contient un sous-dossier cache .git qui stocke tout l'historique.
# Creer un nouveau depot
git init mon-projet
# Ou cloner un depot existant
git clone https://github.com/utilisateur/projet.gitLes trois zones
Git organise votre travail en trois zones :
- Le repertoire de travail (working directory) : vos fichiers tels que vous les voyez
- La zone de staging (index) : les modifications que vous avez preparees pour le prochain commit
- Le depot (repository) : l'historique complet des commits
Le flux de travail typique est :
Modifier un fichier → git add → git commitLe commit
Un commit est un instantane de votre projet a un moment donne. Chaque commit a :
- Un identifiant unique (hash SHA-1, par exemple
a3f5b2c) - Un auteur et une date
- Un message descriptif
- Un pointeur vers le commit precedent (le parent)
# Ajouter un fichier a la zone de staging
git add index.html
# Creer un commit
git commit -m "Ajouter la page d'accueil"Ecrire de bons messages de commit
Un bon message de commit repond a la question « Pourquoi cette modification ? » plutot que « Quoi ? ». Quelques conventions :
- Commencer par un verbe a l'infinitif : « Ajouter », « Corriger », « Supprimer »
- Limiter la premiere ligne a 50 caracteres
- Ajouter une ligne vide puis des details si necessaire
Corriger le calcul de la TVA pour les DOM-TOM
Le taux de TVA applicable en Guadeloupe est de 8,5 %
et non 20 %. Mise a jour de la table de taux dans
le fichier config/tax-rates.json.Les branches
Creer et naviguer entre les branches
Une branche est un pointeur vers un commit. La branche par defaut s'appelle generalement main (anciennement master).
# Creer une nouvelle branche
git branch nouvelle-fonctionnalite
# Basculer vers cette branche
git checkout nouvelle-fonctionnalite
# Raccourci : creer et basculer en une commande
git checkout -b nouvelle-fonctionnaliteFusionner une branche
Quand votre fonctionnalite est terminee, vous la fusionnez dans la branche principale :
# Revenir sur main
git checkout main
# Fusionner la branche
git merge nouvelle-fonctionnalite
# Supprimer la branche fusionnee
git branch -d nouvelle-fonctionnaliteGerer les conflits
Un conflit survient quand deux branches modifient la meme ligne d'un fichier. Git marque le conflit dans le fichier :
<<<<<<< HEAD
Version de la branche main
=======
Version de la branche fonctionnalite
>>>>>>> fonctionnaliteVous devez choisir quelle version conserver, supprimer les marqueurs, puis valider le merge avec un commit.
Travailler avec un depot distant
Les principales commandes
# Envoyer vos commits vers le depot distant
git push origin main
# Recuperer les modifications des autres
git pull origin main
# Voir l'etat du depot distant
git remote -vLes plateformes d'hebergement
- GitHub : la plus populaire, racheee par Microsoft en 2018 pour 7,5 milliards de dollars
- GitLab : alternative open source avec CI/CD integre
- Bitbucket : orientee equipes, integration avec Jira
Les bonnes pratiques
- Committez souvent : de petits commits frequents sont plus faciles a comprendre et a annuler
- Un commit = une modification logique : ne melangez pas une correction de bug et un ajout de fonctionnalite
- Ne committez jamais de secrets : mots de passe, cles API, fichiers
.envdoivent etre dans.gitignore - Tirez (pull) avant de pousser (push) : cela evite les conflits inutiles
- Utilisez des branches : meme en solo, les branches clarifient votre travail
Conclusion
Git est un outil puissant dont les bases s'apprennent en quelques heures. Commencez par init, add, commit et push. Les branches et les merges viendront naturellement avec la pratique. L'essentiel est de prendre l'habitude de versionner votre code des le premier jour de chaque projet.