TD1 - Premiers pas
- Objectifs:
- Comprendre les différents espaces de travail
- Comprendre le fonctionnement d'un historique
- Prendre en main les commandes associées à ces notions
Exercice 0
Pour voir si vous avez un peu suivi ce matin.
a
Git est
- un site de partage de code
- un système de contrôle de version
- un outil de gestion de recettes de cuisine
b
J'ai une fonctionnalité que je souhaite retirer de mon projet, mais j'aimerais garder une trace du code parce que j'en suis fièr·e. Je
- laisse le code en commentaire
- garde un fichier « vrac.java » dans lequel je stocke tous mes bouts de code qui pourraient peut-être un jour resservir
- n'ai pas à me poser la question car j'utilise un système de contrôle de version
c
Pour retrouver la version d'un projet d'il y a deux semaines, je
- cherche dans le fichier projet_final_FINALv2-18mars.zip dans mon dossier « backups projet »
- regarde dans mes mails, où je m'envoie régulièrement une archive du projet en pièce-jointe
- utilise un système de contrôle de version
d
Quels sont les noms des trois espaces de travail de git ?
e
Existe-t-il d'autres systèmes de gestion de version que git ?
Exercice 1
Relier les notions à leurs définitions:
- Staging Area
- Working Directory
- Commit
- Repository
- HEAD
- Clone
- Récupérer sur son ordinateur un dépôt distant
- État du dernier commit
- État actuel du dossier sur l'ordinateur
- Commit actuel
- Validation des modifications actuelles
- Zone tampon pour préparer le prochain commit
Exercice 2
Relier les commandes à leurs effet
- add
- clone
- commit
- log
- status
- switch -d
- Affiche l'état actuel des trois espaces
- Ajoute un fichier à la staging area
- Affiche l'historique des commits
- Déplace la HEAD à un commit spécifié
- Télécharge un dépôt distant
- Valide et sauvegarde l'état actuel de la staging area
Exercice 3
a
Les commandes ls et git status donnent les résultats suivants. Déduisez en les états des trois espaces.
uro@nabu:/tmp/R210$ ls
main.c README.md
uro@nabu:/tmp/R210$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
| Working Directory | Staging Area | Repository |
|---|---|---|
b
Quelle commande permettrait de passer à l'état suviant.
| Working Directory | Staging Area | Repository |
|---|---|---|
| main.c | main.c | |
| README.md | README.md | |
c
On veut maintenant valider l'ajout du fichier README.md. Quelle est la commande à effectuer ?
Exercice 4
Adora, Bow et Catra travaillent ensemble pour un exposé sur le rat-taupe nu. Iels ont décidé d'utiliser git pour garder une trace de l'évolution, pouvoir revenir en arrière, et se partager les modifications facilement.
a
Quelle commande donne le résultat suivant ?
commit c470fe3401d969e1334fb90351cf4abbacf4dc0a
Author: Bow <bow@rebelmail.etheria>
Date: Wed Mar 18 18:54:00 2026 +0100
Modifications mineures pour améliorer la lecture
commit b5bc18a0f07ab3dda9da03d46994308a0b75a629
Author: Bow <bow@rebelmail.etheria>
Date: Wed Mar 18 18:52:13 2026 +0100
Ajout readme
commit 8c3bd71bcda8477fa93b22e4170a22702618a20b
Author: Catra <catra@hordemail.etheria>
Date: Wed Mar 18 18:46:48 2026 +0100
Retrait ligne pas intéressante
commit 3f3d44d0e94e9ba47f8aa7d2663755dc715b3c06
Author: Catra <catra@hordemail.etheria>
Date: Wed Mar 18 18:24:41 2026 +0100
Ajout fiction
commit fcf7df2e5ebba7483e7cd0d8ee9379bbf5740770
Author: Catra <catra@hordemail.etheria>
Date: Wed Mar 18 17:56:46 2026 +0100
Ajout systématique
commit 72cb81664a1c117f66a8125c5fcdf2729247daa6
Author: Catra <catra@hordemail.etheria>
Date: Wed Mar 18 17:38:23 2026 +0100
Ajout alimentaire
commit e0042be7dc2e7df85954b67389c755ba2302f593
Author: Catra <catra@hordemail.etheria>
Date: Wed Mar 18 17:27:40 2026 +0100
Ajout reproduction
commit aebd48479b6cf4f837472f609d852cf283731e84
Author: Bow <bow@rebelmail.etheria>
Date: Wed Mar 18 18:17:37 2026 +0100
Ajout privation d'oxygène
commit 5ea29cbdb2a185ebcc20861cf5b6cb04851c37a3
Author: Bow <bow@rebelmail.etheria>
Date: Wed Mar 18 17:53:46 2026 +0100
Ajout insensibilité
commit f22bb7df2978741634b2e8f1f3238f319083724b
Author: Bow <bow@rebelmail.etheria>
Date: Wed Mar 18 17:31:23 2026 +0100
Ajout longévité
commit 6ec4ad525d062a0f0caed3fd39fe277eaa6de89f
Author: Bow <bow@rebelmail.etheria>
Date: Wed Mar 18 17:12:42 2026 +0100
Ajout mode de vie
commit 72742ece673a67afdf6ad0e3b0c876c266fa2558
Author: Adora <adora@hordemail.etheria>
Date: Wed Mar 18 17:46:02 2026 +0100
Ajout Description
commit 6906d8398db48344a2db196514158c12ff02339e
Author: Adora <adora@hordemail.etheria>
Date: Wed Mar 18 17:19:37 2026 +0100
Ajout introduction
commit 031b51d037506e8fc0cbb919e9c6682f7921bc03
Author: Adora <adora@hordemail.etheria>
Date: Wed Mar 18 17:04:25 2026 +0100
Ajout du plan
b
Qui a ajouté les informations sur le mode de vie du rat-taupe ?
c
Catra se souvient qu'elle aimait bien la mise en page juste après avoir ajouté les informations que la reproduction. Malheureusement, Bow et Adora ont modifié beaucoup de choses, et Catra aimerait voir l'état qui lui plaisait pour s'en inspirer. Quelle commande Catra peut-elle utiliser pour revenir à cet état ?
d
git show 72742ec donne le résultat suivant.
commit 72742ece673a67afdf6ad0e3b0c876c266fa2558
Author: Adora <adora@hordemail.etheria>
Date: Wed Mar 18 17:46:02 2026 +0100
Ajout Description
diff --git a/Rapport.md b/Rapport.md
index 774242c..001f6c8 100644
--- a/Rapport.md
+++ b/Rapport.md
@@ -4,6 +4,14 @@ L'Hétérocéphale (Heterocephalus glaber), aussi appelé Rat-taupe nu ou Rat-ta
## Description
+Le rat-taupe mesure de 8 à 33 cm de long auxquels s'ajoute une queue pouvant aller jusqu'à 8 cm. Sa masse peut varier de 28 g à 1,5 kg.
+
+Les rats-taupes nus ont une tête aux muscles de la mâchoire particulièrement développés, avec de grandes incisives proéminentes qu'ils utilisent pour forer leurs galeries. Une très grande partie de leur cerveau est d'ailleurs dévolue au contrôle et à la sensibilité de la bouche. Leurs yeux sont pratiquement atrophiés et leurs oreilles minuscules se limitent à une petite ouverture qu'ils peuvent obturer pour éviter que la terre y pénètre.
+
+Ils sont pratiquement glabres, à la peau rosée et translucide, à l'exception de la tête et de la queue qui possèdent des vibrisses (longs poils sensitifs) et des pattes qui portent des poils entre les orteils, ce qui leur confère un aspect esthétique assez impressionnant en comparaison avec d'autres espèces de rongeurs.
+
+Adaptés à leur mode de vie souterrain, leurs capacités visuelles sont atrophiées mais leur odorat et leur ouïe sont bien développés. Ils sont aussi particulièrement sensibles aux vibrations du sol et aux courants d'air.
+
## Mode de vie
## Particularités remarquables
Quel fichier a été modifié dans ce commit ? Par qui et à quelle date ? Pourquoi cette modification a-t-elle été effecutée ?
e
Adora se réveille et voit que Catra et Bow ont avancé sur le rapport. Elle aimerait voir rapidement ce qui a changé depuis la dernière fois qu'elle a travaillé dessus. Quelle commande peut afficher ces informations ?
f
Le rapport est presque fini, mais Bow se rend compte qu'il y a une typo sur un mot. Quelles sont les étapes pour corriger cette typo et faire en sorte que la dernière version prenne en compte cette modification ?
Exercice 5
Parlons de bonnes pratiques !
(Plusieurs réponses possibles à chaque fois)
a
Un message de commit doit plutôt être
- Une explication détaillée d'au moins 1500 caractères de pourquoi et comment les modifications ont été effecutées
- Explicite
- Concis
- Expliquer ce qui a été fait lors de ce commit
b
J'ai plusieurs bugs à corriger dans ces fichiers différents, ces bugs n'ont rien à voir entre eux.
- Je fais d'abord l'un, un commit, puis l'autre, un autre commit
- Je fais les deux d'un coup et un seul commit
- Je mets « bugfix » en message de commit
-
Je mets « correction du bug
» en message de commit -
Je mets « j'ai corrigé le bug
dans le fichier en modifiant <détail des modifications effecutées> » en message de commit
c
Que veut dire le mot « atomique » ?
Pensez-vous qu'un commit devrait être atomique ?