Récupérer les fichiers perdus

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

En tant que développeur, vous pourriez rencontrer des situations où des fichiers importants sont accidentellement supprimés et validés (committed). Ce défi simule un tel scénario, testant votre capacité à utiliser les outils d'inspection de l'historique et de restauration d'état de Git pour récupérer les fichiers perdus et remettre votre projet dans un état fonctionnel.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/reflog("Log Ref Changes") subgraph Lab Skills git/add -.-> lab-387781{{"Récupérer les fichiers perdus"}} git/status -.-> lab-387781{{"Récupérer les fichiers perdus"}} git/commit -.-> lab-387781{{"Récupérer les fichiers perdus"}} git/checkout -.-> lab-387781{{"Récupérer les fichiers perdus"}} git/log -.-> lab-387781{{"Récupérer les fichiers perdus"}} git/reflog -.-> lab-387781{{"Récupérer les fichiers perdus"}} end

Récupérer les fichiers perdus

Avant de commencer ce défi, un dépôt Git a été initialisé pour vous dans le répertoire ~/project/important-project. Ce dépôt contient plusieurs validations (commits), y compris la création et la suppression accidentelle ultérieure de deux fichiers importants. Voici ce que vous devez savoir :

  • Le dépôt a été créé avec une validation initiale ajoutant un fichier README.md.
  • Deux fichiers cruciaux, important_algorithm.py et crucial_data.txt, ont été ajoutés dans une validation ultérieure.
  • Il y a eu quelques autres validations avec diverses modifications.
  • À un moment donné, important_algorithm.py et crucial_data.txt ont été accidentellement supprimés, et cette suppression a été validée (committed).
  • Il y a eu au moins une autre validation après la suppression accidentelle.

Votre tâche consiste à récupérer les fichiers supprimés en parcourant l'historique du dépôt, puis à valider (committer) les fichiers récupérés.

Tâches

  1. Examiner l'historique du dépôt pour trouver quand important_algorithm.py et crucial_data.txt ont été supprimés.
  2. Restaurer le dépôt à l'état juste avant la suppression.
  3. Conserver les validations (commits) originales et créer une nouvelle validation avec le message "Recover deleted files" (Récupérer les fichiers supprimés).

Exigences

  • Travailler dans le répertoire ~/project/important-project.
  • Vérifier que important_algorithm.py et crucial_data.txt sont présents après la récupération.
  • S'assurer que le message de la dernière validation est "Recover deleted files" (Récupérer les fichiers supprimés) et que l'historique des validations est préservé.

Exemple

Après avoir réussi le défi, l'exécution de la commande ls dans le répertoire du projet devrait afficher :

$ ls ~/project/important-project
important_algorithm.py crucial_data.txt README.md

L'exécution de git status devrait indiquer un répertoire de travail propre :

$ git status
On branch master
nothing to commit, working tree clean

Et git log devrait afficher votre nouvelle validation en haut :

$ git log --oneline
8876d8b (HEAD -> master) Recover deleted files
9b3525c Update project status
5e6234c Oops, accidentally deleted important files
9de9506 Update algorithm TODO
01c36ae Add crucial data and algorithm
638a98d Initial commit
✨ Vérifier la solution et pratiquer

Résumé

Dans ce défi, vous avez été confronté à un scénario Git courant : la suppression accidentelle de fichiers. Vous avez appris à :

  1. Examiner l'historique complet de votre dépôt, y compris les actions qui ont modifié le HEAD.
  2. Restaurer votre dépôt à un état antérieur spécifique, en quelque sorte "reculer dans le temps" dans votre projet.
  3. Créer une nouvelle validation (commit) pour enregistrer l'état restauré de votre projet.

Ces compétences sont inestimables pour retrouver des validations perdues, annuler des erreurs et maintenir un historique de projet clair. N'oubliez pas que, bien que ces outils puissent vous sortir d'une situation difficile, il est toujours préférable de travailler avec soin et de faire régulièrement des validations bien documentées pour éviter de telles situations dès le départ.

En terminant ce défi, vous avez acquis une expérience pratique avec certains des outils de récupération les plus puissants de Git, des compétences qui vous seront très utiles tout au long de votre carrière de développeur.