Je suivais les instructions pour créer des pages github et j'ai oublié de descendre dans mon sous-répertoire git. En conséquence, je viens de parcourir tout un répertoire de documents avec git clean -fdx
. Y a-t-il un moyen de réparer cette terrible erreur?
Réponses
Trop de publicités? git clean -fdxn
Fera un essai à blanc et vous montrera quels fichiers seront supprimés si vous exécutiez
git clean -fdx
(bien sûr, ce n'est utile que si vous le savez à l'avance, mais pour la prochaine fois)
Pas de. "git nettoyage fdx" va supprimer tous les fichiers et répertoires que git n'a pas de piste à partir de votre répertoire de travail. Parce que Git n'est pas le suivi de ces fichiers, il ne dispose d'aucune des sauvegardes de ces fichiers. Au moins pas habituellement.
Si vous avez fait un "git add" sur l'un de ces fichiers relativement récemment (mais abandonné l'commit), il y a une chance que vous pouvez trouver avec git "fsck --perdu-trouvé". Il vaut la peine d'essayer, mais ne pas obtenir vos espoirs trop.
Dans l'avenir, vous devriez envisager plutôt de commettre quelques fois, trop souvent, que quelques fois trop rarement. De cette façon, vous aurez au moins avoir une sauvegarde locale, même si vous ne finissent pas de pousser ces s'engage à une télécommande.
Comme @kusma mentionné ci-dessus, si vous avez de la chance (si vous avez déjà "git add"), vous pouvez utiliser ce qui suit pour extraire l'objet entier:
git fsck | awk '{print $3}' | xargs git show | tee searchresults.log
De cette façon, il recherchera tous les types de morceaux, collectera les diffs complets et ajoutera à un fichier que vous pouvez extraire le fichier perdu. Dans mon cas, j'avais perdu toute une classe Java.