Sinossi
git symbolic-ref [--short] <name> [<ref>]
git symbolic-ref --delete <name>
Descrizione
Il comando git symbolic-ref manipola i ref simbolici — ref che puntano a un altro ref invece di un commit. L'esempio più familiare è HEAD: quando sei sul branch main, HEAD è un ref simbolico che punta a refs/heads/main. Altri esempi includono l'indicatore di branch predefinito sui remote (refs/remotes/origin/HEAD).
Nell'uso quotidiano, git symbolic-ref si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Quando usarlo
Usalo quando devi cambiare HEAD senza toccare la working tree (es. durante una migrazione personalizzata) o quando script attorno al concetto di branch predefinito. La maggior parte degli utenti legge solo i ref simbolici via git rev-parse --abbrev-ref HEAD.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
--short | Stampa il nome corto (es. main). |
--delete | Cancella il ref simbolico. |
--quiet | Non stampa errore se il ref manca. |
-m <reason> | Ragione del reflog per i cambiamenti. |
Esempi
git symbolic-ref HEAD
# refs/heads/main
git symbolic-ref --short HEAD
# main
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
# Imposta l'indicatore di branch predefinito su origin
git symbolic-ref HEAD refs/heads/develop
# Cambia HEAD senza toccare la working tree (avanzato!)
Errori comuni
Cambiare HEAD via symbolic-ref non aggiorna la working tree — i file non cambieranno. Usa git switch per il caso quotidiano. Impostare origin/HEAD in modo errato confonde gli strumenti che cercano il branch predefinito.
Comandi correlati
git update-ref, git switch, git rev-parse, git remote set-head