Git annuler la suppression de la twig locale

Je viens de supprimer la mauvaise twig avec quelques modifications expérimentales dont j’ai besoin avec git branch -D branchName .

Comment récupérer la twig?

Vous pouvez utiliser git reflog pour trouver le SHA1 du dernier commit de la twig. A partir de là, vous pouvez recréer une twig en utilisant

 git branch branchName  

Edit: Comme @seagullJS le dit, la commande branch -D D vous indique le sha1, donc si vous n’avez pas encore fermé le terminal, cela devient très simple. Par exemple, cela supprime puis restaure immédiatement une twig nommée master2 :

 user@MY-PC /C/MyRepo (master) $ git branch -D master2 Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it! user@MY-PC /C/MyRepo (master) $ git branch master2 130d7ba 

Si vous connaissez le dernier SHA1 de la twig, vous pouvez essayer

 git branch branchName  

Vous pouvez trouver le SHA1 en utilisant git reflog , décrit dans la solution ici .

Si vous n’avez pas encore poussé la suppression, vous pouvez simplement faire:

 $ git checkout deletedBranchName 

Si vous venez de supprimer la twig, vous verrez quelque chose comme ceci dans votre terminal:

 Deleted branch branch_name(was e562d13) 
  • où e562d13 est un identifiant unique (alias “SHA” ou “hash”), avec lequel vous pouvez restaurer la twig supprimée.

Pour restaurer la twig, utilisez:

 git checkout -b   

par exemple :

 git checkout -b branch_name e562d13 

Premièrement: sauvegardez l’intégralité de votre répertoire, y compris le répertoire .git.

Deuxièmement: vous pouvez utiliser git fsck --lost-found pour obtenir l’ID des commits perdus.

Troisièmement: rebase ou fusionne sur le commit perdu.

Quasortingème: Toujours réfléchir à deux fois avant d’utiliser -D ou –force avec git 🙂

Vous pouvez également lire cette bonne discussion sur la manière de résoudre ce type d’erreur.

EDIT: Au fait, ne lancez pas git gc (ou laissez-le s’exécuter seul – c’est-à-dire ne lancez pas git fetch ou quelque chose de similaire) ou vous risquez de perdre vos commits pour toujours.

Merci, cela a fonctionné.

git branch new_branch_name sha1

git checkout new_branch_name

// peut voir mes anciens fichiers archivés dans mon ancienne twig