Ricerca…
Ripristino da un commit perso
Nel caso in cui sia stato ripristinato un commit passato e perso un commit più recente, è possibile ripristinare il commit perduto eseguendo
git reflog
Quindi trova il commit perso e ripristina il risultato facendo
git reset HEAD --hard <sha1-of-commit>
Ripristina un file cancellato dopo un commit
Nel caso in cui tu abbia accidentalmente commesso un'eliminazione su un file e in seguito ti sei reso conto che ne hai bisogno.
Prima trova l'id di commit del commit che ha cancellato il tuo file.
git log --diff-filter=D --summary
Vi fornirà un riepilogo ordinato di commit che cancellano i file.
Quindi procedere a ripristinare il file con
git checkout 81eeccf~1 <your-lost-file-name>
(Sostituisci 81eeccf con il tuo ID di commit)
Ripristina il file su una versione precedente
Per ripristinare un file in una versione precedente puoi utilizzare reset
.
git reset <sha1-of-commit> <file-name>
Se hai già apportato modifiche locali al file (che non ti servono!) Puoi anche usare l'opzione --hard
Recupera un ramo cancellato
Per recuperare un ramo cancellato è necessario trovare il commit che era il capo del ramo eliminato eseguendo
git reflog
È quindi possibile ricreare il ramo eseguendo
git checkout -b <branch-name> <sha1-of-commit>
Non sarai in grado di recuperare i rami cancellati se il garbage collector di git ha cancellato i commit pendenti - quelli senza ref. Avere sempre un backup del proprio repository, specialmente quando si lavora in un piccolo team / progetto proprietario
Ripristino da un reset
Con Git, puoi (quasi) ripristinare sempre l'orologio
Non aver paura di sperimentare comandi che riscrivono la storia *. Git non elimina i tuoi commit per 90 giorni per impostazione predefinita e durante questo periodo puoi recuperarli facilmente dal reflog:
$ git reset @~3 # go back 3 commits
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~3
2c52489 HEAD@{1}: commit: more changes
4a5246d HEAD@{2}: commit: make important changes
e8571e4 HEAD@{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started
* Attenzione per opzioni come --hard
e --force
però - possono scartare i dati.
* Inoltre, evita di riscrivere la cronologia su tutti i rami su cui stai collaborando.
Recupera da git stash
Per ottenere la tua scorta più recente dopo aver eseguito git stash, usa
git stash apply
Per vedere un elenco dei tuoi scorte, usa
git stash list
Otterrai una lista che assomiglia a questo
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
Scegli un diverso git stash da ripristinare con il numero che appare per la scorta che vuoi
git stash apply stash@{2}
Puoi anche scegliere 'git stash pop', funziona come 'git stash apply' come ..
git stash pop
o
git stash pop stash@{2}
Differenza in git stash apply e git stash pop ...
git stash pop : - i dati di stash verranno rimossi dalla lista di stack.
Ex:-
git stash list
Otterrai una lista che assomiglia a questo
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
Ora pop dati di stash usando il comando
git stash pop
Ancora una volta controlla la lista delle cose da fare
git stash list
Otterrai una lista che assomiglia a questo
stash@{0}: WIP on master: 70f0d95 Add user role to localStorage on user login
Si può vedere un dato di scorta rimosso (spuntato) dalla lista di scorta e lo stash @ {1} diventa stash @ {0}.