Ho appena eliminato il ramo sbagliato con alcune modifiche sperimentali di cui ho bisogno git branch -D branchName
.
Come recupero la filiale?
Ho appena eliminato il ramo sbagliato con alcune modifiche sperimentali di cui ho bisogno git branch -D branchName
.
Come recupero la filiale?
Risposte:
Puoi usare git reflog per trovare SHA1 dell'ultimo commit del ramo. Da quel punto, puoi ricreare un ramo usando
git branch branchName <sha1>
Modifica: Come dice @seagullJS, il branch -D
comando ti dice sha1, quindi se non hai ancora chiuso il terminale diventa molto semplice. Ad esempio, questo elimina e quindi ripristina immediatamente un ramo denominato 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
Se hai appena eliminato il ramo, vedrai qualcosa di simile nel tuo terminale:
Deleted branch branch_name(was e562d13)
- dove e562d13 è un ID univoco (noto anche come "SHA" o "hash"), con questo è possibile ripristinare il ramo eliminato.
Per ripristinare il ramo, utilizzare:
git checkout -b <branch_name> <sha>
per esempio :
git checkout -b branch_name e562d13
Primo: eseguire il backup dell'intera directory, inclusa la directory .git.
Secondo: è possibile utilizzare git fsck --lost-found
per ottenere l'ID dei commit persi.
Terzo: rebase o unione sul commit perso.
Quarto: pensaci sempre due volte prima di usare -D o --force con git :)
Puoi anche leggere questa buona discussione su come recuperare questo tipo di errore.
EDIT: A proposito, non correre git gc
(o non lasciarlo correre da solo - cioè non correre git fetch
o qualcosa di simile) o potresti perdere i tuoi impegni per sempre.
Grazie, ha funzionato.
git branch nome_branco
sha1
git checkout new_branch_name
// può vedere i miei vecchi file registrati nel mio vecchio ramo
Segui questi passi:
1: inserire:
git reflog show
Questo mostrerà tutta la cronologia dei commit, devi selezionare lo sha-1 che ha l'ultimo commit che vuoi recuperare
2: crea un nome di filiale con l' ID Sha-1 selezionato, ad es. 8c87714
git branch your-branch-name 8c87714