Rez-de-chausséeG GitPièce 1/7Débutant

Pourquoi Git

Le problème des fichiers final_v2_vrai, ce qu'est un dépôt et un commit, et comment installer et configurer Git.

Ce que tu vas apprendre

  • Pourquoi copier ses dossiers à la main ne suffit pas.
  • Ce que sont un dépôt, un commit et les quatre zones de Git.
  • Comment installer Git, te présenter à lui et créer ton premier dépôt.

Le problème : final_v2_vrai.docx

Tu as sûrement déjà vu un dossier comme celui-ci :

rapport.docx
rapport_v2.docx
rapport_final.docx
rapport_final_v2_vrai.docx

Avec un site web, c'est pire. Tu modifies index.html et style.css, le menu casse, et tu ne sais plus ce qui marchait hier. Tu copies le dossier en site-backup, puis site-backup-2. Au bout d'une semaine, personne ne sait quelle copie est la bonne.

Et si vous êtes deux sur le projet, c'est le chaos : chacun envoie ses fichiers par message, et le dernier qui copie écrase le travail de l'autre.

Git règle ces deux problèmes. Il garde chaque version du projet et permet de travailler à plusieurs sans s'écraser.

Ce que fait Git

Git est un logiciel de gestion de versions. Il tourne sur ton ordinateur, en ligne de commande. Il ne remplace pas ton éditeur : tu continues à écrire ton code comme d'habitude. Git observe le dossier et enregistre des versions quand tu le lui demandes.

Le dépôt

Un dépôt (en anglais repository, souvent abrégé repo) est un dossier suivi par Git. Concrètement, c'est ton dossier de projet, plus un sous-dossier caché nommé .git. Ce sous-dossier contient tout l'historique. Tu n'as jamais besoin de l'ouvrir ni de le modifier à la main.

Git est distribué : chaque copie du dépôt contient l'historique complet. Si ton ordinateur tombe en panne, une copie sur GitHub ou chez un collègue suffit pour tout retrouver.

Le commit

Un commit est une photo complète du projet à un instant donné. Chaque commit est rangé avec :

  • son auteur ;
  • sa date ;
  • un message qui explique le changement ;
  • un identifiant unique, une suite de chiffres et de lettres, souvent affichée en version courte (par exemple a1b2c3d) ;
  • un lien vers le commit précédent, son parent.

Dans les archives de l'immeuble, chaque classeur numéroté C1, C2, C3 est un commit : on peut toujours ressortir une ancienne photo.

Les quatre zones

Un fichier passe par quatre endroits :

  1. Le répertoire de travail : tes fichiers, tels que tu les édites.
  2. L'index (ou zone de préparation, staging area) : ce qui partira dans le prochain commit.
  3. Le dépôt local : l'historique des commits, dans le dossier .git.
  4. Le dépôt distant : une copie partagée, par exemple sur GitHub.

Manipule le schéma ci-dessous pour voir un fichier passer d'une zone à l'autre. Les commandes git add, git commit et git push sont détaillées dans les chapitres suivants.

Les quatre zones de Git

Répertoire de travail

Tes fichiers, tels que tu les édites.

Index

Zone de préparation : ce qui partira dans le prochain commit.

Dépôt local

L’historique des commits, dans le dossier .git.

Dépôt distant

La copie partagée (GitHub, GitLab…).

C1
C1
C2
C2
$ git status

Tout est propre : le dossier correspond au dernier commit, déjà poussé.

Installer Git

Vérifie d'abord si Git est déjà là :

git --version

Si la commande affiche un numéro de version (la dernière est la 2.56.1), c'est bon. Sinon :

  • Windows : télécharge l'installateur sur le site officiel git-scm.com. Il installe aussi Git Bash, un terminal où toutes les commandes de ce cours fonctionnent.
  • macOS : la commande git --version propose d'installer les outils de développement d'Apple, qui contiennent Git.
  • Linux (Debian, Ubuntu) : sudo apt install git.

Te présenter à Git

Chaque commit enregistre un nom et une adresse e-mail. Indique-les une seule fois pour toute la machine, grâce à l'option --global :

git config --global user.name "Camille Martin"
git config --global user.email "camille@example.com"

Remplace l'exemple par ton nom et ton adresse. Si tu utilises GitHub, mets la même adresse que sur ton compte : tes commits seront reliés à ton profil.

Profites-en pour régler le nom de la branche principale :

git config --global init.defaultBranch main
Sans ce réglage, git init nomme la branche principale master. C'est le comportement par défaut jusqu'à Git 3.0. La plupart des projets récents, dont GitHub, utilisent main. Tu peux aussi le préciser au cas par cas avec git init -b main.

Pour relire ta configuration :

git config --global --list

Créer ton premier dépôt

Imagine un petit site de portfolio. Crée le dossier, entre dedans, puis lance git init :

mkdir portfolio
cd portfolio
git init

Git répond qu'il a initialisé un dépôt vide. Le dossier .git vient d'apparaître. Rien n'est encore enregistré : le dépôt n'a aucun commit. Tu vas créer le premier au chapitre suivant.

Lance git init dans le dossier du projet, jamais dans ton dossier personnel ou sur le Bureau entier. Sinon Git suivrait tous les fichiers de ton ordinateur qui s'y trouvent.

À retenir

  • Git garde chaque version du projet : plus besoin de copies final_v2_vrai.
  • Un dépôt est un dossier de projet avec un sous-dossier .git qui contient tout l'historique.
  • Un commit est une photo complète du projet, avec auteur, date, message et identifiant.
  • Configure une fois user.name, user.email et init.defaultBranch main.
  • git init transforme un dossier en dépôt.

Pour aller plus loin

Sources officielles

Ensuite

Projet
Lignes de code
Niveau
Rez-de-chaussée
Appartement
Git
Pièce
1/7
Plan n°
git/01.pourquoi-git
Lignes de code · fiches rédigées à partir des documentations officielles, sources citées en bas de chaque page.