Se commette 4 e 5 sono in un solo repository e non sono stati spinti o tirati da qualsiasi altro repository si può semplicemente:
git ripristinare SHA1_HASH_OF_COMMIT_3 --hard
È è possibile trovare l'hash SHA1 di un commit utilizzando git log
oppure è possibile utilizzare tecniche di denominazione più avanzate, vedere git help rev-parse
in particolare la sezione 'SPECIFICARE LE REVISIONI'.
L'utilizzo di questo comando lascerà i commit 4 e 5 irraggiungibili dalla punta del ramo. I commit, tuttavia, non andranno persi poiché tali commit sono tenuti nel reflog del ramo. È possibile utilizzare git reflog
per identificare un commit non raggiungibile. Il ripristino può quindi essere eseguito con un altro git reset --hard
. Questa pagina here descrive tutto molto bene.
Si consiglia di eseguire regolarmente git gc
; alcuni comandi lo fanno anche automaticamente. Questo essenzialmente esegue la "manutenzione" sul repository, come "comprimere le revisioni dei file (per ridurre lo spazio su disco e aumentare le prestazioni) e rimuovere gli oggetti non raggiungibili". Gli oggetti non raggiungibili vengono eliminati dal repository dopo (un valore predefinito di) 30 giorni. Questo può essere modificato utilizzando l'opzione di configurazione gc.reflogExpireUnreachable
.
fonte
2010-08-08 12:08:10
Vorrei andare con ripristino se hai inviato a un repository pubblico. altrimenti qualcuna delle altre opzioni va bene. – xenoterracide