Question 1Parmi ces affirmations sur la différence entre enregistrer par-dessus et faire un commit, laquelle est correcte ?
Qu'est-ce que Git — enregistrer les modifications pour pouvoir revenir en arrière
Cet article fait partie du cours Les bases de l'informatique, qui construit depuis zéro les connaissances informatiques pratiques indispensables pour programmer et faire du vibe coding.
Enregistrer par-dessus ne laisse rien de l'état précédent. Des schémas suivent le parcours qui va de l'enregistrement d'un commit à la récupération d'un point antérieur parmi les enregistrements accumulés dans le dépôt.
Cet article traite de Git.
Git enregistre les modifications des fichiers pour que tu puisses revenir à un état antérieur, et placer ces enregistrements sur un serveur permet de mettre d'autres personnes dans le même état.
Les enregistrements alignés dans les trois emplacements sont les mêmes, et c'est le serveur placé au milieu qui les maintient identiques.
Ce que fait Git — conserver des enregistrements et les partager via un dépôt distant
Le mécanisme qui enregistre les modifications des fichiers point par point pour pouvoir récupérer un état passé s'appelle la gestion de versions (version control).
L'endroit où ces enregistrements sont conservés est le dépôt (repository), la même chose placée côté serveur est le dépôt distant (remote repository), et un enregistrement pris à un instant donné est un commit.
Les services les plus connus pour héberger un dépôt distant sont GitHub et GitLab, et GitHub n'est pas Git lui-même : c'est un endroit où placer un dépôt distant.
- app.js et style.css
- Enregistrer par-dessus remplace le contenu
- Les commits alignés du plus ancien au plus récent
- git commit en ajoute un
- Les commits envoyés avec git push s'alignent ici
- https://github.com/example/my-app.git est cet endroit
- Accessible en lecture et en écriture depuis un autre ordinateur
Envoyer les enregistrements de ton ordinateur vers le serveur, c'est un push, et récupérer ceux du serveur, c'est un pull.
Comme un serveur se trouve au milieu, le contenu est le même quel que soit le moment où le collègue le récupère.
Les formulations sur Git que tu croises dans les procédures se répartissent en trois catégories.
La colonne de gauche reste à l'intérieur de ton ordinateur, celles du milieu et de droite échangent avec GitHub.
Enregistrer par-dessus ne laisse aucun état antérieur — ce que la gestion de versions enregistre
Enregistrer par-dessus (écraser le fichier), c'est remplacer le contenu de app.js par le contenu actuel.
Rien de l'ancien contenu ne subsiste après le remplacement : tu auras beau enregistrer, tu ne pourras pas revenir à un état antérieur.
| Ce que tu as fait avant de modifier | Où se trouve l'ancien contenu | Une fois que ça ne marche plus |
|---|---|---|
| Seulement enregistré par-dessus | Nulle part | Retour impossible |
| Éditeur laissé ouvert | L'historique d'annulation (perdu à la fermeture) | Les modifications faites pendant qu'il est ouvert sont annulables |
| git commit exécuté | L'enregistrement dans le dépôt | Retour possible à tout moment |
L'ancien contenu ne reste dans le dépôt que si tu as fait un commit.
Le seul point de bascule, c'est d'avoir exécuté git commit une fois avant de modifier.
Cette seule commande crée un point où revenir.
Seul un commit laisse un enregistrement
Enregistrer par-dessus efface l'ancien contenu avec le contenu actuel, et ce qui est effacé ne subsiste nulle part sur l'ordinateur.
Le commit ajoute un enregistrement de app.js tel qu'il est à ce moment-là, sans rien effacer ; donc quand plus rien ne fonctionne, les seuls points où tu peux revenir sont ceux pour lesquels tu as fait un commit.
Le commit se fait en deux étapes : choisir les modifications à enregistrer, puis les enregistrer
Le commit se divise en deux étapes : tu choisis d'abord, puis tu enregistres.
L'étape où tu choisis et inscris les modifications s'appelle le staging (l'étape où tu sélectionnes et inscris les modifications à inclure dans le commit), et à cause de ces deux étapes, il existe trois emplacements de stockage dans le dossier my-app.
- app.js — le contenu actuellement ouvert dans l'éditeur
- style.css — le fichier qui décrit l'apparence de l'écran
- Enregistrer par-dessus remplace le contenu ici
- Contient les modifications choisies avec git add
- Redevient vide quand tu exécutes git commit
- Les commits alignés du plus ancien au plus récent
- git commit en ajoute un
Une modification descend du haut vers le bas en deux temps : git add et git commit.
La modification d'index.html que tu n'as pas choisie n'est pas perdue, et tu pourras la choisir la fois suivante.
La procédure pour vérifier avant d'enregistrer tient en ces trois lignes.
# Vérifier les fichiers modifiés
git status
# Choisir et inscrire les modifications à enregistrer
git add app.js
# Enregistrer les modifications choisies avec un message court
git commit -m "Ajout de l'écran de connexion"
Exécuter git status affiche les noms des fichiers que tu as modifiés, et git log montre la liste des enregistrements.
Si tu exécutes git commit sans avoir exécuté git add, aucune modification n'a été choisie et aucun enregistrement n'est créé.
Choisis ce que tu enregistres avant de l'enregistrer
Le commit se fait en deux étapes : choisir et enregistrer.
git add choisit les modifications qui entrent dans cet enregistrement et git commit transforme en un seul enregistrement uniquement ce que tu as choisi ; si tu oublies l'étape du choix, aucun enregistrement ne s'ajoute.
Le dépôt se trouve dans le dossier, avec les commits alignés du plus ancien au plus récent
Le dossier dédié qui contient le dépôt est créé au moment où tu exécutes git init, la commande qui démarre l'enregistrement dans ce dossier.
À chaque commit, un enregistrement de plus s'y ajoute.
- app.js tel qu'il était quand tu as construit l'écran
- La date, l'heure et le message « Création de l'écran »
- app.js et style.css tels qu'ils étaient quand tu as ajouté les champs de saisie
- La date, l'heure et le message « Ajout des champs de saisie »
- app.js enregistré le plus récemment
- La date, l'heure et le message « Ajout de l'écran de connexion »
Revenir en arrière, c'est choisir l'un des enregistrements alignés et remplacer par son contenu le fichier app.js sur lequel tu travailles.
Pour les fichiers que tu ne veux pas enregistrer, tu peux écrire leur nom dans un fichier de configuration appelé .gitignore, placé dans le dossier.
Cela empêche l'enregistrement des fichiers qui n'ont pas encore été enregistrés, et n'a aucun effet sur un fichier déjà enregistré une fois.
Les enregistrements ne disparaissent pas : ils s'alignent du plus ancien au plus récent
Le dépôt se trouve dans le dossier dédié situé dans le dossier my-app.
À chaque commit, un enregistrement de plus s'ajoute et les précédents ne sont jamais réécrits ; revenir en arrière, c'est donc choisir l'un des enregistrements alignés et donner son contenu au fichier actuel.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Le commit se fait en deux étapes. Quelle étape précède l'enregistrement ?
Question 3Quelle opération envoie vers le dépôt distant placé sur un serveur un commit enregistré dans le dépôt de ton ordinateur ?