Récupérer des données spécifiques à l’aide de commandes Git
La possibilité de récupérer des données à l’aide de commandes Git est essentielle pour les développeurs afin de rétablir des modifications accidentelles, de restaurer des fichiers supprimés ou de récupérer des validations perdues. Elle contribue à réduire les temps d’arrêt inattendus et à assurer la continuité du projet. Toutefois, bien que ses avantages soient clairs, il est important de souligner ses risques potentiels. Lors de l’application de la commande Git décrite dans cette unité, il est essentiel d’exercer une prudence appropriée, en particulier lors de la manipulation de l’historique des validations ou de la restauration des modifications, car les erreurs peuvent entraîner une perte de données.
Commandes de récupération de données Git
Les commandes Git qui traitent de la récupération des données peuvent être regroupées en plusieurs catégories, notamment la récupération de validations, de fichiers, de lignes de code spécifiques et de validations ou de branches supprimées.
Récupération des validations
- journal git : répertorie l’historique de validation d’un référentiel. Vous pouvez parcourir le journal pour rechercher la validation que vous souhaitez récupérer.
- git checkout <commit>: se déplace vers un commit spécifique, pour récupérer efficacement l’état du dépôt à ce commit.
- git cherry-pick <commit>: applique les modifications introduites par un commit spécifique dans votre branche actuelle.
Récupération de fichiers
- git checkout <commit><fichier>: restaure un fichier spécifique à partir d'un commit précédent.
- git restore <le fichier>: ignore les modifications locales et restaure le fichier à son dernier état validé, à condition que vous n’ayez pas encore validé les modifications.
Récupération de lignes de code spécifiques
- git blame <fichier>: affiche la révision et l’auteur de chaque ligne d’un fichier, pour vous aider à identifier le commit qui a introduit une modification particulière.
- git affiche <commit>:<fichier>: affiche le contenu d’un fichier à un commit spécifique. Vous pouvez spécifier le chemin de validation et de fichier pour voir le contenu tel qu’il existait à ce moment-là.
Récupération de commits ou de branches supprimées
- reflog git : affiche un enregistrement de toutes les validations. Vous pouvez l'utiliser pour trouver le hachage SHA-1 d'une validation ou d'une branche précédemment supprimée, puis la vérifier ou la restaurer.
- git fsck --lost-found : vérifie l’intégrité du référentiel et répertorie les validations qui ne sont pas accessibles à partir d’une branche ou d’une balise. Vous pouvez l’utiliser pour récupérer les validations perdues.
N’oubliez pas d’utiliser ces commandes avec précaution, en particulier lors de la manipulation de l’historique des validations ou de la restauration des modifications. Veillez toujours à créer une sauvegarde de votre dépôt avant de commencer ou d’utiliser git stash pour enregistrer vos modifications actuelles avant de tenter d’effectuer des opérations de récupération.
Exemple de scénario
Pas à pas dans un exemple de scénario qui illustre le processus d’utilisation de commandes Git pour récupérer un fichier supprimé. Nous partons du principe qu’un fichier nommé example.txt résidant dans votre dépôt Git a été supprimé accidentellement et que vous devez le récupérer.
Affichage de l’historique des validations :
- Commencez par afficher l’historique des validations :
log git - Dans la liste de l’historique des validations, identifiez le hachage SHA-1 de la validation où le fichier example.txt était présent pour la dernière fois.
restaurer le fichier supprimé :
- Une fois que vous avez identifié le hachage SHA-1 de la validation, utilisez git checkout pour restaurer le fichier :
git checkout <commit_SHA>^ -- example.txt - Remplacez <commit_SHA> par le hachage SHA-1 de la validation. Le symbole ^ indique le parent de cette validation et restaure efficacement le fichier à son état avant la suppression.
vérification des modifications :
- Après avoir restauré le fichier, vérifiez qu’il a été correctement restauré en vérifiant l’état du référentiel :
git status - Vérifiez que example.txt est répertorié comme le fichier modifié ou non suivi.
La mise en scène et l'enregistrement des modifications :
- Si le fichier est répertorié comme modifié, préparez-le pour la validation :
git add example.txt - Validez les modifications avec un message de validation approprié :
validation git -m « example.txtrestauré »