Git detached HEAD: conserva i commit
I blocchi sono casi diversi, non un unico script. Scegli il caso del tuo repository. Sostituisci branch, percorsi e VERIFIED_COMMIT prima dell’uso. I comandi di annullamento valgono solo per la propria operazione attiva; non eseguire entrambe le alternative.
Risposta breve
Detached HEAD significa che HEAD indica direttamente un commit invece di seguire un branch locale. Puoi esaminare, compilare e fare commit. Per mantenere lavoro nuovo, crea un branch al commit attuale prima di uscire. Il checkout separato non è perdita di dati; lasciare commit nuovi senza riferimento duraturo crea il rischio.
Esempio e condizioni
L’esempio usa il checkout temporaneo di una vecchia versione e due commit da conservare come correzione. È diverso da un rebase attivo o da un submodule volutamente separato. Leggi status e termina o annulla consapevolmente qualsiasi operazione attiva prima di seguire questo percorso.
Controlla prima di modificare
Nel caso separato ordinario, branch --show-current è vuoto. Status spiega il contesto e log mostra la storia attuale. Annota l’ID di HEAD. Un nome vuoto non significa assenza di branch né file non tracciati: il riferimento e l’albero di lavoro rispondono a domande diverse.
git status
git branch --show-current
git log -3 --oneline
git rev-parse HEADConserva un riferimento o checkout separato
Crea rescue/detached con switch -c mentre sei sul commit desiderato. Il branch mantiene raggiungibile quella storia, senza trasformare modifiche locali in commit. Esamina e salva tali modifiche separatamente. Scegli un nome nuovo, senza sostituire un branch esistente con opzioni di forza.
git switch -c rescue/detached
git branch --show-currentPrimo percorso
Verifica nome del branch, commit e patch. Continua lì o integra la correzione con merge o cherry-pick: quest’ultimo copia la modifica in un nuovo commit, mentre merge unisce storie. Scegli in base al lavoro e controlla l’esito. Uscire da detached HEAD non richiede automaticamente un push.
git log -3 --oneline --decorate
git show --stat HEADScegli consapevolmente l’altro risultato
Se sei già uscito, esamina reflog locale e candidati con show. Scegli per patch e genitore e crea rescue/recovered all’ID verificato. VERIFIED_COMMIT è un segnaposto da sostituire. HEAD@{1} non è sempre il commit perso: altre operazioni possono cambiare la voce rilevante.
git reflog --date=iso
git show VERIFIED_COMMIT
git branch rescue/recovered VERIFIED_COMMITLimiti ed eccezioni
Reflog registra movimenti di riferimenti locali, non è un archivio remoto. Voci e oggetti irraggiungibili possono scadere o essere rimossi. Modifiche senza commit non sono state registrate come commit. Cerca una copia precedente, come backup dell’editor o stash verificato, senza promettere che reflog ricrei quei file.
Conflitti e pulizia
Un submodule usa spesso detached HEAD per consumare il commit fissato dal padre. È normale per una dipendenza. Per sviluppare nel repository figlio, crea un suo branch al suo interno e segui il relativo processo. Il branch del padre non nomina automaticamente commit del figlio: riferimenti e storie sono separati.
Verifica il risultato
Prima di cancellare il recupero, verifica che un altro branch duraturo o merge controllato raggiunga i commit voluti. Controlla stato e patch a destinazione e conserva il riferimento durante la revisione. Un nome di branch preserva storia confermata, non una seconda copia fisica di tutti i file né test superati.
git log --oneline --decorate rescue/detached
git status --shortDomande frequenti
È un errore? Non quando ispezioni deliberatamente commit, tag o submodule fissato. Posso fare commit? Sì, ma dai un nome alla storia prima di uscire. Recuperare dopo? A volte, se oggetti ed evidenza locale esistono ancora; controlla i candidati senza garantire conservazione permanente.
Esamina l’operazione in FluxGit
Usa la storia visiva e la vista delle modifiche di FluxGit per esaminare l’operazione e i commit pertinenti. Mantieni le verifiche di branch, condivisione e file locali dell’esempio. La pagina di download mostra build e piattaforme disponibili.