Je viens de supprimer la mauvaise branche avec quelques changements expérimentaux dont j'ai besoin git branch -D branchName
.
Comment récupérer la branche?
Je viens de supprimer la mauvaise branche avec quelques changements expérimentaux dont j'ai besoin git branch -D branchName
.
Comment récupérer la branche?
Réponses:
Vous pouvez utiliser git reflog pour trouver le SHA1 du dernier commit de la branche. À partir de là, vous pouvez recréer une branche à l'aide de
git branch branchName <sha1>
Edit: Comme le dit @seagullJS, la branch -D
commande vous indique le sha1, donc si vous n'avez pas encore fermé le terminal, cela devient vraiment facile. Par exemple, cela supprime puis restaure immédiatement une branche 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
git branch branchName origin/branchName
Si vous n'avez pas encore poussé la suppression, vous pouvez simplement faire:
$ git checkout deletedBranchName
Si vous venez de supprimer la branche, vous verrez quelque chose comme ça dans votre terminal:
Deleted branch branch_name(was e562d13)
- où e562d13 est un ID unique (alias "SHA" ou "hachage"), avec cela, vous pouvez restaurer la branche supprimée.
Pour restaurer la branche, utilisez:
git checkout -b <branch_name> <sha>
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: rebaser ou fusionner sur le commit perdu.
Quatrièmement: réfléchissez toujours à deux fois avant d'utiliser -D ou --force avec git :)
Vous pouvez également lire cette bonne discussion sur la façon de récupérer de ce type d'erreur.
EDIT: Soit dit en passant, ne courez pas git gc
(ou ne le laissez pas s'exécuter seul - c'est-à-dire ne courez 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 branche
Suivez ces étapes:
1: Entrez:
git reflog show
Cela affichera tout l'historique des commits, vous devez sélectionner le sha-1 qui a le dernier commit que vous souhaitez récupérer
2: créez un nom de branche avec l' ID Sha-1 que vous avez sélectionné, par exemple: 8c87714
git branch your-branch-name 8c87714