Git avec GitHub
Module P_prog – ETML 319
- Auteur : Jonathan Melly
- Modifié par : Dimitrios Lymberis
Prérequis
Avant de commencer, assurez-vous d’avoir installé :
⚠️ Dans cette page d'inroduction, nous utilisons GitHub Desktop pour simplifier l’apprentissage de Git.
L’utilisation de Git dans Visual Studio fera l’objet d’un chapitre à part.
Introduction
Ce document est une introduction à l’utilisation simple de Git avec GitHub pour travailler seul à deux endroits distincts (travail et maison).
Repository
L’entité principale dans Git est le Repository (ou "Dépôt"), souvent abrégé Repo.
Formellement, un repo Git est le dossier .git/ dans le dossier du projet.
Ce dépôt suit toutes les modifications dans les fichiers du projet, construisant un historique au fil du temps.
Warning
Si vous supprimez le dossier .git/, vous supprimez l'historique du projet.
On appelle souvent repo l’ensemble du dossier de projet et de son .git/.
Local vs Remote
Git est un système de gestion de version décentralisé.
Il peut exister plusieurs copies d’un même repo sur différentes machines.
- Une seule copie sur GitHub : c’est le Remote (ou
origin). - Chaque copie sur une machine : un repo local.
Cela donne beaucoup de flexibilité, mais nécessite une bonne gestion de la synchronisation entre remote et local (elle n’est pas automatique, et c’est une bonne chose).
Commandes de base
Clone: crée un repo local depuis le remote.Pull: met à jour le repo local depuis le remote.Push: met à jour le remote avec les modifications locales.Commit: enregistre dans le repo local tous les changements depuis le dernierPull,CommitouClone.
Info
Un Commit Git est une « capture instantanée » ou une « version » de votre projet qui enregistre les modifications apportées à vos fichiers dans votre dépôt local. Il fonctionne comme un « point de sauvegarde » dans l'historique de votre projet, chaque commit incluant les métadonnées telles qu'un message descriptif, la date et l'auteur de la modification, et un pointeur vers le commit précédent.
Pour effectuer un commit, vous devez d'abord utiliser la commande git add pour « stager » (préparer) les modifications dans la zone de staging, puis git commit pour créer l'instantané et le sauvegarder localement.
À quoi sert un commit ?
- Historique du projet : Les commits créent un historique détaillé des changements, permettant de suivre l'évolution du projet au fil du temps.
- Retour en arrière : Vous pouvez facilement revenir à des versions antérieures fonctionnelles si une modification introduit un problème.
- Collaboration : Le message de commit sert de communication pour expliquer la nature des modifications aux autres collaborateurs.
- Versionnement : Chaque commit représente une version stable de votre projet, que vous pourrez pusher (envoyer) vers un dépôt distant plus tard.
Exemple d’utilisation
- J’installe GitHub Desktop sur mes deux postes (ETML et maison).
- Depuis ETML, je crée un nouveau repo sur GitHub nommé
flowers. - Je le clone avec GitHub Desktop.
- Je place le repo local où je veux (pas sur un lecteur réseau !).
- Je travaille sur le projet (
code,docs,images, etc.). - Je fais un
commitpour enregistrer les modifications. - Je fais un
pushpour mettre à jour le remote. - Je continue à travailler, modifie, ajoute des fichiers...
- Je
commità nouveau pour enregistrer le travail. - Je
pushà nouveau. - Je rentre chez moi, je veux encore travailler.
- Je clone le repo chez moi, état identique à ETML.
- Je continue mon travail localement.
- Je fais un
commitlocal. - Je fais un
push. - De retour à ETML, mon repo local est en retard.
- Je fais un
pullpour le mettre à jour. - Je travaille, fais plusieurs
commit/push. - Le soir, je fais un
pullchez moi avant de continuer.
Conflits
Il est essentiel de faire un pull au début et un push à la fin de chaque session.
Oublier peut générer des conflits difficiles à résoudre.
Exemple de conflit
Un fichier tulipe.png est à jour partout.
Je le modifie à ETML, fais commit + push.
À la maison, sans faire de pull, je le modifie, fais commit + push → Erreur : push refusé.
Commits : Nommage et contenu
Pour tirer le meilleur parti de Git :
1. Commits atomiques
Un commit doit couvrir une seule tâche complète.
Exemple : ajout d’un champ dans un formulaire → un seul commit contenant toutes les modifications liées.
2. Bon nommage
Un bon message de commit se compose de :
- Un préfixe (type) :
feat: nouvelle fonctionnalitéfix: correction de bugchore: tâches administrativesdoc: documentationrefactor: refactorisationtest: ajout/modification de tests-
typo: correction mineure -
Le scope (entre parenthèses) : ce que cela concerne
- Une description active (compléter l’une de ces phrases) :
- « Si on applique ce commit, le système va ... »
Exemples
feat(user): Allow to change the address of the user
refactor(homepage): Use <div> instead of <table>
chore(project): update the "journal de travail"
Navigation
Introduction Compte personnel Ex. Travailler sur 2 postes
Pour aller plus loin
-
Pro Git Book (en français)
Le livre officiel de Git, entièrement disponible en ligne et traduit. Une référence complète couvrant Git en profondeur. -
GitHub Docs – Utilisation de GitHub avec Git
Guide pratique pour utiliser GitHub au quotidien, avec GitHub Desktop, en ligne de commande ou dans un IDE.
- Apprendre Git en 20 minutes (Grafikart)
Une vidéo claire et synthétique qui introduit les bases de Git : clone, commit, push, pull...
-
Atlassian Git Tutorials
Série de tutoriels interactifs pour apprendre Git étape par étape, avec illustrations et cas d'usage. -
OpenClassrooms – Comprendre Git et GitHub
Un cours accessible et progressif pour comprendre le fonctionnement de Git, GitHub, et des workflows collaboratifs. -
Git Cheatsheet (git-scm.com)
Une fiche mémo PDF idéale pour réviser les commandes essentielles de Git rapidement.
