22. Reflog : Récupérer des données avec Reflog

Lorsque vous travaillez avec le versioning de code à l'aide de Git, l'un des plus grands avantages est la possibilité de récupérer des données et de revenir efficacement aux états précédents du projet. Un outil puissant à cet effet est reflog, ou "journal de référence". Le reflog est un mécanisme Git qui enregistre les mises à jour des références locales d'un référentiel, telles que les branches et HEAD, permettant aux développeurs de récupérer les validations qui semblent avoir été perdues.

Qu'est-ce que Reflog ?

Le reflog est un enregistrement qui stocke l'historique des opérations qui modifient la position des pointeurs dans Git, comme le HEAD, les branches locales et les balises. Chaque entrée du reflog contient un identifiant de validation (SHA-1), l'action qui a provoqué le changement et un message explicatif. Ce journal est conservé localement et n'est pas partagé entre des référentiels distants, ce qui signifie qu'il s'agit d'un outil de récupération personnel pour chaque développeur.

Comment Reflog est-il utilisé ?

Pour accéder au reflog, utilisez simplement la commande git reflog. Cela affichera une liste de toutes les actions récentes, telles que les validations, les réinitialisations, les fusions et les extractions, ainsi que leurs identifiants SHA-1. Chaque entrée du reflog est accompagnée d'un index qui peut être utilisé pour référencer l'état du référentiel à ce stade spécifique.

$ git reflog 1c002dd (HEAD -> master, origin/master, origin/HEAD) HEAD@{0} : commit : ajouter une fonctionnalité f01b4f8 HEAD@{1} : fusionner la branche de fonctionnalité : avance rapide d25a2ea HEAD@{2} : checkout : passer de la branche de fonctionnalités au maître ...

Récupérer des commits avec Reflog

L'une des utilisations les plus courantes de reflog est de récupérer des commits qui ont été accidentellement supprimés via des commandes telles que git reset ou git rebase. Par exemple, si vous avez effectué une réinitialisation matérielle et perdu l'accès à un commit important, reflog peut vous aider à le restaurer.

Tout d'abord, localisez le commit manquant en utilisant git reflog. Vous pouvez ensuite vérifier l'état du dépôt à ce stade avec git checkout suivi de l'index trouvé dans le reflog :

$ git checkout HEAD@{2}

Si vous souhaitez ramener le commit dans la branche actuelle, vous pouvez créer une nouvelle branche à partir de ce point :

$ git branch récupérer-branche HEAD@{2}

Vous pouvez ensuite fusionner ou rebaser cette branche de récupération avec votre branche principale, ramenant ainsi le commit perdu.

Nettoyage et entretien Reflog

Le reflog est automatiquement maintenu par Git, mais éventuellement les anciennes entrées sont supprimées pour empêcher le journal de croître indéfiniment. Par défaut, les entrées de reflog sont conservées pendant 90 jours pour les entrées faisant référence à des validations accessibles et pendant 30 jours pour les entrées faisant référence à des validations devenues inaccessibles. Ces périodes peuvent être configurées via les paramètres Git gc.reflogExpire et gc.reflogExpireUnreachable, respectivement.

Attention lors de l'utilisation de Reflog

Bien que le reflog soit un outil puissant, il est important de l'utiliser avec prudence. Reflog est un outil de récupération local et ne doit pas être considéré comme un substitut aux bonnes pratiques de sauvegarde. De plus, étant donné que le reflog enregistre toutes les actions, il peut contenir des informations sensibles, telles que des messages de validation qui ont été réécrits ou supprimés. Par conséquent, il est conseillé d'être prudent lorsque vous partagez l'historique de reflog avec d'autres.

Conclusion

Le reflog est une fonctionnalité unique de Git qui fournit un filet de sécurité aux développeurs, leur permettant de récupérer les données qui semblent perdues. Il s'agit d'une fonctionnalité qui distingue Git des autres systèmes de contrôle de version, offrant la flexibilité et la confiance nécessaires pour expérimenter et apporter des modifications audacieuses au code source, sachant qu'il existe un moyen de revenir en arrière en cas de problème. Apprendre à utiliser reflog est essentiel pour tout développeur souhaitant maîtriser Git et tirer le meilleur parti de la puissance qu'il offre pour gérer l'historique du code.

En résumé, le reflog est un outil essentiel pour le développeur moderne et, lorsqu'il est utilisé correctement, il peut économiser des heures de travail et beaucoup de maux de tête. Alors, familiarisez-vous avec reflog et intégrez-le à votre flux de travail de gestion des versions de code pour vous assurer de ne plus jamais manquer un commit important.

Répondez maintenant à l’exercice sur le contenu :

Quelle est la fonction de la commande `git reflog` dans Git ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Git Hooks : automatiser les tâches

Page suivante de lebook gratuit :

23Git Hooks : automatiser les tâches

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte