Annullare gli errori: restore, reset, revert — correttamente e con cautela
Uno degli argomenti più richiesti nei colloqui e nel lavoro reale è come annullare ciò che è già stato fatto. Analizzeremo tre strumenti con diversa 'profondità' di annullamento e ci concentreremo sull'aspetto più importante: mostreremo scenari concreti in cui reset --hard distrugge il lavoro di squadra, mentre revert è un'alternativa sicura. Soluzioni giuste e sbagliate — con conseguenze reali.
- Sarai in grado di annullare con sicurezza le modifiche in qualsiasi fase: nella directory di lavoro, nell'indice e nella cronologia dei commit.
- Comprenderai la differenza sostanziale tra reset e revert e saprai in quali situazioni ciascuno è appropriato.
- Imparerai a evitare gli errori tipici che i principianti commettono quando annullano le modifiche in un repository condiviso.
Simula ng leksyon
Git restore: il pulsante di annullamento per i file
- Git restore — annulla le modifiche non committate
- Funziona come il pulsante 'Annulla' in un editor
- Sicuro — non modifica la cronologia dei commit
- Riporta i file all'ultimo stato salvato
Immagina di aver accidentalmente salvato un file con un errore e di voler tornare indietro. Git restore agisce come un magico pulsante di annullamento: riporta i file all'ultimo stato registrato. A differenza di altri comandi di annullamento, restore lavora solo con le modifiche non committate ed è completamente sicuro per la cronologia del tuo progetto. È il primo strumento a cui ricorrere in caso di modifiche accidentali, quando serve correggere rapidamente la situazione senza rischi per la cronologia delle modifiche.
Annullare le modifiche nella directory di lavoro
- git restore file.txt — riporta il file all'ultimo commit
- Annulla tutte le modifiche nella directory di lavoro
- Sicuro — le modifiche possono essere recuperate tramite l'editor
- Controlla sempre lo stato con git status prima di ripristinare
Supponiamo che tu abbia passato mezz'ora a modificare un file di configurazione, ma ti sia reso conto di essere sulla strada sbagliata. Invece di annullare manualmente ogni modifica, esegui git restore config.yml. Il file tornerà immediatamente allo stato dell'ultimo commit. È come se avessi semplicemente chiuso il file senza salvarlo, ma con la garanzia di tornare a una versione funzionante.
# Demo di ripristino di un file
$ echo "Modifiche errate" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
Rimuovere un file dall'indice
- git restore --staged file.txt — rimuove un file dall'indice
- Mantiene le modifiche nella directory di lavoro
- Attenzione: senza --staged le modifiche andranno perse
- Controlla sempre git status prima di eseguire
Un errore comune è aggiungere accidentalmente un file extra all'indice. Ad esempio, hai eseguito git add . e hai incluso un file di configurazione temporaneo. Il comando git restore con il flag staged e il nome del file settings.tmp lo rimuoverà delicatamente dall'indice, ma manterrà tutte le modifiche nella directory di lavoro. Senza il flag staged, perderesti il tuo lavoro, quindi controlla sempre lo stato con git status prima di eseguire restore. Ora sai come annullare le modifiche prima del commit. Ma cosa succede se l'errore è già entrato nella cronologia? È qui che entra in gioco git reset.
# Aggiunto accidentalmente un file all'indice
$ git add config.tmp
$ git status
# Rimuovi dall'indice, mantenendo le modifiche
$ git restore --staged config.tmp
$ git status
# Verifica che il file sia ancora nella directory di lavoro
$ ls -la config.tmp
Buong leksyon ay para sa subscription
24 pang slide sa buong bersyon.
Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.
Mag-sign in o magparehistro Mag-subscribeNilalaman ng leksyon
- Git restore: il pulsante di annullamento per i file
- Annullare le modifiche nella directory di lavoro
- Rimuovere un file dall'indice
- Git reset: come funziona il riavvolgimento della cronologia
- Reset --soft sicuro: modifiche nell'indice
- Reset --mixed standard: modifiche nella directory di lavoro
- Reset --hard pericoloso: eliminazione irreversibile
- Reset: tre modalità, un comando
- git reset --soft: riscrivere la storia in sicurezza
- Quando usare --mixed e --hard
- Checklist: quale reset scegliere?
- Perché non si può semplicemente cancellare l'errore?
- Come funziona git revert nella pratica
- Annullare più commit in una volta
- Reset: riscrivere la storia in locale
- Revert: annullare le modifiche in sicurezza
- Cosa succede con push: reset vs revert
- Perché reset --hard è pericoloso
- Esempio di perdita di modifiche
- Come recuperare i dati
- Pericoli del rollback in un branch condiviso
- Rollback sicuro con revert
- Sequenza corretta delle operazioni
- Quando usare cosa: restore, reset o revert
- Regole per lavorare con cronologia personale e condivisa
- Guida passo passo in caso di errore
- Riepilogo e compito: Il maestro degli annullamenti
Mga artikulo tungkol sa araling ito
- Mga command ng Git: cheat sheet na may mga halimbawa para sa araw-araw
- git checkout, switch, at restore: kailan gamitin ang alin
- git reset at git revert: paano i-undo ang commit nang hindi nasisira ang history
- git reflog: paano ibalik ang nawalang commit at branch
- Git at GitHub: ano ang pagkakaiba at paano sila magkaugnay
Lahat ng leksyon ng kurso
- Introduzione: Git da zero a sviluppatore fiducioso
- Perché serve Git — e perché senza non ti assumono
- Installazione e configurazione: prepariamo Git al primo avvio
- Primo repository: init, add, commit e la magia dell'indice
- Leggiamo la storia: log, diff, show e navigazione nel passato
- Branch: la realtà parallela del tuo codice
- Annullare gli errori: restore, reset, revert — correttamente e con cautela
- GitHub e repository remoti: il tuo codice nel cloud
- Lavoro di squadra: fork, feature branch e pull request
- Conflitti di unione: niente panico — analizziamo e risolviamo
- Processi Git nei team reali: quale workflow scegliere
- Strumenti avanzati: rebase, stash, cherry-pick e tag
- Progetto finale: simuliamo uno sviluppo di gruppo reale