Informations

Auteur(s) Mathieu Jadin
Date limite Pas de date limite
Limite de soumission Pas de limite

Se connecter

Scénario Catastrophe Git 3 - Récupérer le code après avoir supprimé les modifs de votre code, de l'historique local et distant

Imaginons que vous avez été imprudent en utilisant git reset --hard et que vous avez écrasé votre historique distant avec git push --force.

Vous n'avez donc plus vos modifications dans le code, dans la staging zone, dans votre historique local ou dans votre historique distant. Néanmoins, c'est rattrapable tant que vous n'avez pas supprimé le dossier .git de votre projet !

Pour cela vous devez utilisez les reference logs, accessible avec git reflog. Ces logs contiennent tous les changements faits sur toutes les branches de votre historique. Vous pouvez donc récupérer tous les commits que vous avez écrasés. Une fois que vous avez identifié le point auquel vous voulez revenir, il suffit d'utiliser git merge pour replacer les modifs dans votre repo (et un traditionnel git push pour le repo distant).


Téléchargez l'archive qui contient déjà un repository cloné dans le sous-dossier clone. Votre repo a des historiques locaux et distants avec juste un commit suite à une mauvaise commande. Utilisez reflog pour retrouver tous les commits effacés et pusher-les sur le repository distant.

Une fois que c'est fait, ré-archivez le dossier complet et uploadez-le.

Notez que le repository "distant" dans cet exercice n'est pas sur github ou dans bitbucket mais dans le dossier bare.git de l'archive.

git-reflog/
├── bare.git/
|   └── [...]
└── clone/
    └── [...]

Taille fichier max. : 1.0 MiB
Extensions autorisées : .zip