Pourquoi 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 :
- Le répertoire de travail : tes fichiers, tels que tu les édites.
- L'index (ou zone de préparation, staging area) : ce qui partira dans le prochain commit.
- Le dépôt local : l'historique des commits, dans le dossier
.git. - 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.
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…).
$ git statusTout 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 --versionpropose 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
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.
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
.gitqui 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.emailetinit.defaultBranch main. git inittransforme un dossier en dépôt.
Pour aller plus loin
Sources officielles
Ensuite
Git
Le mémo des commandes Git du quotidien : configurer, enregistrer, brancher, partager, annuler.
Premiers commits
Le cycle de base de Git, status, add, commit, puis log et diff pour relire l'historique, avec un .gitignore et de bons messages.
- Projet
- Lignes de code
- Niveau
- Rez-de-chaussée
- Appartement
- Git
- Pièce
- 1/7
- Plan n°
- git/01.pourquoi-git