Da Anonimo (non verificato) , 29 Aprile 2026

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

OpzioneDescrizione
--shortStampa il nome corto (es. main).
--deleteCancella il ref simbolico.
--quietNon 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