2010-09-10 28 views
0

J'ai probablement fait une énorme erreur.Récupération "Git Clean -fdx" ... possible?

informations système concerné:

  • Windows XP SP2
  • i686 Cygwin 1.7.6 git
  • 1.7.1

je tentais de créer une branche vide sur un nouveau git repository, voici les commandes que je viens de publier:

git init 
git symbolic-ref HEAD refs/heads/klist 
rm .git/index <---- this command failed obviously, there was no index. 
git clean -fdx <---- this is my nightmare 

Je ne savais pas que la commande clean supprime vraiment les fichiers qui se trouvent dans le dossier en cours, et comme il s'agissait d'un dépôt git récemment initialisé, il n'y a pas d'ancienne version à restaurer.

Certains des fichiers que je les ai téléchargés sur ma page d'accueil mais certains ne le sont pas. Des idées sur la façon de récupérer les fichiers seront appréciées. Cela ne me dérange pas d'utiliser n'importe quel logiciel de récupération, et je suis conscient que la perte de fichiers sur linux/cygwin est une douleur, voire impossible, à récupérer, mais bon, il faut essayer.

+0

Si je me souviens d'un travail que j'ai fait sur git-clean, il n'a pas de mécanisme de sauvegarde. – alternative

+0

J'ai vérifié en ligne et je ne vois pas beaucoup qui peut m'aider ... mais je vais voir ce que je peux essayer de toute façon – RaptorX

Répondre

3

git clean supprime contenu non contourné, ce qui par définition est quelque chose dont le référentiel ne sait rien. C'est pourquoi par défaut il ne fait rien, nécessitant l'option -f de faire quelque chose - c'est essentiellement rm sur tout ce qui n'est pas trafiqué. Vous êtes à peu près coincé dans un territoire de récupération désespéré à ce moment-là - comme si vous aviez fait rm -rf * vous-même par accident. Les fichiers peuvent toujours être sur le disque, si vous êtes chanceux. Google autour de "récupérer des fichiers supprimés", ou peut-être demander sur le super-utilisateur.

+0

merci, fera. Cool pour noter que mon RM est aliasé à une commande de déplacement vers un dossier .trash, je suis allé chercher les fichiers là-bas et je n'en ai vu aucun, donc la commande git a vraiment supprimé les fichiers en utilisant sa propre commande 'rm'. De plus, je suivais les instructions de github et le seul avertissement que j'ai reçu était: "L'opération suivante va perdre tous les changements non validés!" il n'y a aucune mention de la suppression physique des fichiers existants. – RaptorX

+0

C'était juste une analogie. Il n'utilise certainement pas votre alias/substitut rm; J'essayais juste de souligner à quel point c'était permanent. Et ... oui, cet avertissement sur github aurait dû être beaucoup plus clair et plus dur. Il est donné dans le contexte d'un référentiel qui a déjà une validation initiale, mais devrait quand même se lire "ceci supprimera définitivement tous les fichiers et répertoires non suivis et ignorés". – Cascabel