← Retour au portail

Fiche 1 - Git — Introduction et concepts fondamentaux

Comprendre ce qu'est Git, pourquoi l'utiliser, et maîtriser les concepts clés (dépôt, commit, branche, historique) sans se noyer dans les commandes.

Débutant — SISR 1ère année ⏱️ 20 min 📁 Autres

🎯 Objectifs de la fiche

  1. Qu'est-ce que Git ? — Définition, histoire, différence avec GitHub
  2. Pourquoi versionner son code ? — Avantages du contrôle de version
  3. Les concepts clés — Dépôt, commit, branche, tag, HEAD, index
  4. Workflow de base (sans les commandes) — Comprendre le cycle de vie d'un fichier versionné
  5. Git vs autres outils — Comparaison avec Subversion (SVN), Mercurial

Prérequis

Aucun prérequis technique. Cette fiche est conçue pour des débutants complets, même sans expérience en ligne de commande.

1. Qu'est-ce que Git ?

Git est un logiciel de gestion de versions (version control system) créé en 2005 par Linus Torvalds (le créateur de Linux) pour gérer le développement du noyau Linux. Il se distingue par ses caractéristiques clés :

CaractéristiqueDescription
DécentraliséChaque développeur possède une copie complète de l'historique sur sa machine. Pas de dépendance à un serveur central.
Historique completToutes les modifications sont conservées indéfiniment, avec leur auteur, date et message.
Branches légèresCréer une branche coûte très peu en ressources, ce qui encourage l'expérimentation.
IntégritéChaque commit est identifié par un hash SHA-1 qui garantit son intégrité.
PerformanceLes opérations (commit, diff, log) sont très rapides, même sur de gros projets.
ℹ️ Git est un outil en ligne de commande. Il existe des interfaces graphiques (GitHub Desktop, GitKraken, Sourcetree), mais la ligne de commande reste la plus puissante et la plus utilisée en entreprise.

2. Pourquoi versionner son code ? (ou ses fichiers)

Imaginez que vous travaillez sur un projet de site web. Vous commencez par un fichier index.html. Puis vous le modifiez, vous créez un style.css, etc. Voici la différence entre travailler sans et avec Git :

Sans GitAvec Git
Sauvegardes manuelles : index.html, index_v2.html, index_final.html, index_final_vrai.html... c'est le bazar.Un historique propre : chaque modification est un commit avec un message explicatif.
Impossible de savoir qui a fait quoi, ni pourquoi.Chaque commit est signé (auteur, date, message).
Si vous cassez tout, vous ne pouvez pas revenir en arrière facilement.Vous pouvez consulter l'historique complet et restaurer n'importe quelle version en un clic.
Pas de possibilité d'expérimenter sans risquer de casser la version stable.Les branches permettent d'expérimenter en toute sécurité, sans toucher à la version stable.
Difficile de collaborer à plusieurs sans s'écraser.Git gère les fusions (merge) et les conflits de manière structurée.
💡 Git ne sert pas qu'au code : on l'utilise aussi pour versionner des configurations, des documentations, des scripts, voire des images ou des fichiers binaires (avec modération).

3. Les concepts clés de Git

Voici les concepts fondamentaux à connaître pour comprendre Git :

ConceptDéfinitionAnalogie
Dépôt (repository)Un dossier versionné par Git, contenant tous les fichiers et l'historique.Un classeur où chaque page est une version du projet.
CommitUn enregistrement (instantané) de l'état des fichiers à un instant T, avec un message.Une photo du projet à un moment donné, avec une légende.
Index (staging area)Une zone tampon où l'on prépare les fichiers avant de les committer.Le bureau où l'on pose les copies à ranger avant de les archiver.
Branche (branch)Une ligne de développement indépendante, qui permet de travailler en parallèle.Une ramification de l'arbre : on peut suivre plusieurs chemins différents.
HEADUn pointeur qui indique où vous vous trouvez actuellement (la dernière version que vous avez consultée).La page du classeur que vous avez ouverte en ce moment.
TagUn marqueur (étiquette) sur un commit pour identifier une version importante (ex: v1.0).Un post-it sur une page du classeur pour la retrouver facilement.
Remote (dépôt distant)Une copie du dépôt hébergée sur un serveur (GitHub, GitLab, etc.) pour partager et collaborer.Un classeur en ligne que toute l'équipe peut consulter et modifier.
ℹ️ La notion de branche est centrale dans Git. En réalité, Git est conçu comme un graphe de commits où les branches ne sont que des étiquettes mobiles.

4. Le cycle de vie d'un fichier dans Git

Pour bien comprendre Git, il faut visualiser les états par lesquels passe un fichier : 1. Working Directory : votre répertoire de travail avec les fichiers tels que vous les éditez. 2. Index (Staging Area) : vous ajoutez un fichier pour préparer son enregistrement. 3. Dépôt (Local) : vous committez, le fichier est enregistré définitivement dans l'historique. On peut aussi restaurer une version depuis le dépôt vers le working directory.

💡 Les commandes add et commit sont les deux actions principales de ce cycle. Les débutants confondent souvent l'index et le dépôt, d'où l'importance de cette distinction.

5. Git vs autres outils de versionnement

CritèreGitSVN (Subversion)Mercurial
ArchitectureDécentraliséCentraliséDécentralisé
HistoriqueComplet localementUn seul historique sur le serveurComplet localement
BranchesTrès légères et nombreusesLourdes (copies de dossiers)Légères
PerformancesTrès rapideLent pour les gros projetsRapide
Courbe d'apprentissageRaideFacileModérée
PopularitéTrès répanduEn déclinNiche
ℹ️ Git est devenu le standard de facto dans l'industrie, notamment grâce à GitHub. Connaître Git est aujourd'hui indispensable pour tout développeur ou administrateur système.
Qu'est-ce qu'un commit dans Git ?
  • Un fichier stocké dans le dépôt
  • Un instantané de l'état du projet à un moment donné
  • Une branche de développement
  • Un dépôt distant

✅ Réponse : Un instantané de l'état du projet à un moment donné

À quoi sert l'index (staging area) dans Git ?
  • À stocker les fichiers de manière permanente
  • À préparer les fichiers avant de les committer
  • À synchroniser avec le dépôt distant
  • À gérer les branches

✅ Réponse : À préparer les fichiers avant de les committer

Que signifie 'HEAD' dans Git ?
  • Le dernier commit de la branche principale
  • Le pointeur vers le commit actuel
  • Le dépôt distant
  • Le fichier de configuration

✅ Réponse : Le pointeur vers le commit actuel

Pourquoi utilise-t-on des branches dans Git ?
  • Pour faire joli dans l'historique
  • Pour travailler sur des fonctionnalités en parallèle sans perturber la version stable
  • Pour ralentir le développement
  • Pour stocker des fichiers de configuration

✅ Réponse : Pour travailler sur des fonctionnalités en parallèle sans perturber la version stable

Laquelle de ces affirmations est vraie concernant Git ?
  • Git est un outil centralisé
  • Git ne peut être utilisé qu'avec GitHub
  • Git est décentralisé : chaque développeur possède l'historique complet
  • Git est obsolète

✅ Réponse : Git est décentralisé : chaque développeur possède l'historique complet

🎯 Passer l'évaluation de cette fiche