Introduction : Git et GitHub¶
Bienvenue dans le monde du développement collaboratif ! Dans cette section, vous allez découvrir deux outils essentiels que tout développeur moderne doit maîtriser : Git et GitHub. Ces outils vous accompagneront tout au long de votre carrière, que vous travailliez seul ou en équipe.
Qu'est-ce que Git ?¶
Git : Votre machine à remonter le temps¶
Git est un système de gestion de versions (en anglais : Version Control System ou VCS). Imaginez que vous écrivez un document important et que vous voulez garder une trace de toutes vos modifications, pouvoir revenir en arrière si vous faites une erreur, ou même comparer différentes versions. C'est exactement ce que fait Git pour votre code !
Pourquoi Git est indispensable ?¶
Sans Git, voici ce qui pourrait arriver :
- ❌ Vous perdez votre travail après une mauvaise manipulation
- ❌ Vous ne savez plus quelle version fonctionne
- ❌ Vous écrasez accidentellement le code de votre collègue
- ❌ Vous devez gérer manuellement des dossiers comme
projet_v1,projet_v2_final,projet_v2_final_vraiment_final
Avec Git :
- ✅ Chaque modification est sauvegardée avec un historique complet
- ✅ Vous pouvez revenir à n'importe quelle version précédente
- ✅ Plusieurs personnes peuvent travailler simultanément sans conflit
- ✅ Vous pouvez expérimenter sans risque sur des branches séparées
Les concepts fondamentaux de Git¶
Pour bien comprendre Git, il faut maîtriser quelques concepts clés :
1. Repository (Dépôt)¶
Un repository (ou repo) est comme un dossier intelligent qui contient :
- Tous vos fichiers de projet
- L'historique complet de toutes les modifications
- Les informations sur qui a modifié quoi et quand
Analogie
Pensez à un repository comme à un cahier de laboratoire scientifique : il contient non seulement les résultats actuels, mais aussi toutes les expériences passées avec leurs notes.
2. Commit¶
Un commit est une sauvegarde de l'état de votre projet à un instant T. C'est comme prendre une photo de tous vos fichiers.
Caractéristiques d'un commit :
- Contient tous les changements depuis le dernier commit
- Possède un message descriptif (ex. "Ajout du système de connexion")
- Possède un identifiant unique (hash)
- Contient l'auteur et la date
Analogie
Un commit = un point de sauvegarde dans un jeu vidéo. Si quelque chose se passe mal plus tard, vous pouvez revenir à ce point.
gitGraph
commit id: "Initial commit"
commit id: "Ajout de la page d'accueil"
commit id: "Création du formulaire de contact"
commit id: "Correction du bug d'affichage"
3. Branch (Branche)¶
Une branch est une ligne de développement parallèle. Elle vous permet de travailler sur une nouvelle fonctionnalité sans affecter le code principal.
Analogie
Imaginez un livre dont l'histoire peut prendre plusieurs directions. La branche main est l'histoire principale, et vous créez une branche nouvelle-fin pour expérimenter une fin alternative sans toucher à l'original.
Utilisation typique des branches :
main: La version stable et officielle de votre projetfeature/login: Développement du système de connexionbugfix/header: Correction d'un bug dans l'en-têteexperiment/new-design: Test d'un nouveau design
gitGraph
commit id: "A"
commit id: "B"
branch feature/login
commit id: "C"
commit id: "D"
checkout main
commit id: "E"
checkout feature/login
commit id: "F"
checkout main
merge feature/login
4. Remote (Dépôt distant)¶
Un remote est une copie de votre repository hébergée sur un serveur (généralement GitHub). Cela permet de :
- Sauvegarder votre code dans le cloud
- Collaborer avec d'autres développeurs
- Accéder à votre code depuis n'importe quel ordinateur
Analogie
Votre ordinateur = brouillon local
GitHub = version publiée et partagée avec le monde
Les zones de Git¶
Git organise votre travail en trois zones distinctes :
Qu'est-ce que GitHub ?¶
GitHub : Le réseau social des développeurs¶
GitHub est une plateforme web qui héberge vos dépôts Git. C'est un peu comme Google Drive, mais spécialement conçu pour les développeurs et le code source.
Pourquoi utiliser GitHub ?¶
GitHub offre bien plus que le simple hébergement de code :
1. Hébergement et sauvegarde¶
- 💾 Vos projets sont sauvegardés dans le cloud
- 🔒 Contrôle d'accès (projets publics ou privés)
- 🌍 Accessible depuis n'importe où dans le monde
2. Collaboration¶
- 👥 Travail en équipe facilité
- 💬 Système de commentaires sur le code
- 🔄 Revue de code (Pull Requests)
- 📋 Gestion des tâches (Issues)
3. Portfolio professionnel¶
- 📊 Votre profil GitHub montre votre activité de développeur
- ⭐ Vous pouvez mettre en avant vos meilleurs projets
- 🤝 Les recruteurs consultent souvent les profils GitHub
4. Intégration avec GitHub Classroom¶
Pour ce cours, GitHub Classroom permet à votre enseignant de :
- 📝 Distribuer automatiquement les exercices
- 👀 Suivre votre progression en temps réel
- ✅ Évaluer votre travail
- 📊 Fournir des retours personnalisés
GitHub en chiffres
- Plus de 100 millions de développeurs utilisent GitHub
- Plus de 420 millions de projets hébergés
- Utilisé par Microsoft, Google, Facebook, Apple, et des millions d'entreprises
Différence entre Git et GitHub¶
Il est important de ne pas confondre les deux :
| Git | GitHub |
|---|---|
| Logiciel installé sur votre ordinateur | Site web accessible via un navigateur |
| Fonctionne en local | Fonctionne en ligne |
| Gratuit et open source | Service commercial (avec version gratuite) |
| Créé en 2005 par Linus Torvalds | Créé en 2008, racheté par Microsoft en 2018 |
Analogie
Git = Microsoft Word (le logiciel)
GitHub = OneDrive (le service de stockage en ligne)
Workflow de base avec Git¶
Maintenant que vous comprenez les concepts, voyons le cycle de travail que vous utiliserez quotidiennement.
Le cycle Git en 4 étapes¶
graph LR
A[1. Modifier<br/>des fichiers] --> B[2. git add<br/>Préparer]
B --> C[3. git commit<br/>Sauvegarder]
C --> D[4. git push<br/>Partager]
D --> A
Étape 1 : Modifier vos fichiers¶
Vous travaillez normalement sur vos fichiers avec votre éditeur de code (VS Code, dans notre cas).
Étape 2 : git add - Préparer les changements¶
La commande git add ajoute vos modifications à la zone de staging (zone d'attente).
Pourquoi une zone de staging ?
Cela vous permet de choisir quels changements vous voulez inclure dans votre prochain commit. Vous pouvez modifier 10 fichiers mais n'en commiter que 3 !
Étape 3 : git commit - Enregistrer les changements¶
La commande git commit crée un point de sauvegarde permanent dans l'historique.
Anatomie de la commande :
git commit: Crée un commit-m: Option pour ajouter un message"message": Description claire de ce que vous avez fait
Écrire de bons messages de commit
✅ Bons messages :
- "Ajout du formulaire de contact"
- "Correction du bug d'affichage sur mobile"
- "Mise à jour de la documentation"
❌ Mauvais messages :
- "update"
- "fix"
- "modifications"
- "test" (trop vague !)
Étape 4 : git push - Envoyer sur GitHub¶
La commande git push envoie vos commits locaux vers GitHub.
Après cette commande :
- Vos modifications sont sauvegardées dans le cloud
- Votre enseignant peut voir votre travail
- Vous pouvez y accéder depuis un autre ordinateur
Exemple complet¶
Imaginons que vous créez une page web :
Et c'est tout ! Vous répéterez ce cycle de nombreuses fois pendant vos projets.
Commandes Git supplémentaires utiles¶
Voici quelques commandes que vous utiliserez fréquemment :
Récapitulatif
Vous savez maintenant :
- ✅ Ce qu'est Git et pourquoi il est essentiel
- ✅ Les concepts clés : repository, commit, branch, remote
- ✅ La différence entre Git et GitHub
- ✅ Le workflow de base en 4 étapes
- ✅ Comment écrire de bons messages de commit
Dans la section suivante, vous allez mettre tout cela en pratique ! 🚀