Sinossi
git remote [-v]
git remote add <name> <url>
git remote remove <name>
git remote set-url <name> <url>
Descrizione
Il comando git remote gestisce l'insieme di repository ("remote") i cui URL sono memorizzati nella tua config locale. Ogni remote ha un soprannome breve (comunemente origin per la sorgente del clone originale e upstream per il progetto da cui hai forkato). Quando esegui git fetch origin, git push origin o simili, il soprannome viene risolto all'URL.
I remote sono memorizzati in .git/config e possono avere URL separati per fetch e push. Portano anche refspec che determinano quali ref scaricare e in quale namespace locale. I workflow moderni hanno spesso solo origin, mentre i contributori open-source tipicamente hanno sia origin (il loro fork) che upstream (il progetto canonico).
Nell'uso quotidiano, git remote si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Opzione / Sottocomando | Descrizione |
|---|---|
-v, --verbose | Mostra gli URL accanto ai nomi dei remote. |
add <name> <url> | Registra un nuovo remote. |
remove <name> | Rimuove un remote dalla config. |
rename <old> <new> | Rinomina un remote. |
set-url <name> <url> | Cambia l'URL di un remote. |
show <name> | Mostra info dettagliate su un remote. |
prune <name> | Cancella ref di tracking remoto obsoleti. |
Esempi
git remote -v
# Elenca tutti i remote con URL
git remote add upstream https://github.com/original/project.git
# Aggiunge il repo upstream di un fork
git remote set-url origin [email protected]:me/project.git
# Passa da HTTPS a SSH
git remote prune origin
# Rimuove i tracking branch che non esistono più su origin
Errori comuni
Aggiungere l'URL sbagliato (typo, suffisso .git mancante su alcuni host) porta a errori di fetch confusi. Esegui git remote -v per confermare. Dopo rinomi del repository o cambi di proprietà del fork, gli URL dei tuoi remote diventano stantii — correggili con set-url. Non dimenticare di fare git remote prune periodicamente per pulire i branch cancellati sul server.
Comandi correlati
git fetch, git push, git pull, git ls-remote