Vous avez supprimé une branche (avec git branch -D nom_de_branche
), pas de panique. Tant que le garbage collector n’est pas passé, la branche est toujours dans l’historique.
Retrouvez le hash du dernier commit de la branche en vous baladant dans git reflog
(quelques git checkout
peuvent être nécessaires pour en voir le contenu). Si vous ne le trouvez pas dans le reflog, tentez git fsck --lost-found
.
Une fois que vous avez le numéro magique, faites git branch nom_de_branche votre_hash
, et vous voilà sorti d’affaire.
Non ne me remerciez pas, je ne fais que mon devoir madame.
De même que le raid ne protège pas d’un rm -rf, avoir un gestionnaire de source n’empêche pas les sauvegardes :)
En parlant de garbage collector, vous pouvez réduire fortement la taille du dossier .git et le temps de recherche dans l’historique en forçant son utilisation par
git gc
(ajoutez l’option--aggressive
pour un peu plus d’efficacité). Sur certains dépôts j’ai pu gagner un facteur 20 en taille et 100 en recherche. Ça fonctionne super bien !typo: –lost-found
C’est pas une typo, c’est cette bitch de WP qui te “corrige” certains trucs sans te prévenir.
Merci, merci, merci !!! Vous me sauvez la vie là !!
Une branche avec mauvais retour arrière !! tout perdu mais non grâce à cette astuce, tout est retrouvé !
Super
Super pour l’astuce, vous m’avez fait gagner quelques heures précieuse ;-)