Git Push
Ultimo aggiornamento
git push carica i commit del tuo branch locale sul branch remoto corrispondente (per esempio su GitHub). Quando un branch ha un upstream impostato basta un semplice git push; il primo push di un nuovo branch usa -u per creare il branch remoto e impostare il tracciamento, così i push e i pull successivi non richiedono argomenti.
Prova questi comandi nel terminal playground: una vera shell nel tuo browser, senza installare nulla.
Sintassi
| Comando | Cosa fa |
|---|---|
git push | Push del branch corrente sul suo upstream |
git push -u origin feature | Push di un nuovo branch e impostazione dell'upstream |
git push origin main | Push su un remote e un branch specifici |
git push --tags | Push di tutti i tag locali |
git push --force-with-lease | Force push sicuro dopo un rebase |
Casi comuni
| Obiettivo | Comando |
|---|---|
| Push di un branch nuovo | git push -u origin feature |
| Push dopo aver impostato l'upstream | git push |
| Push di un singolo tag | git push origin v1.0.0 |
| Eliminare un branch remoto | git push origin --delete feature |
Esempio pratico
| Passo | Comando | Risultato |
|---|---|---|
| 1 | git remote add origin <url> | Collega il repository locale al remote con il nome origin |
| 2 | git push -u origin main | Crea main sul remote e lo imposta come upstream del tuo main locale |
| 3 | git push | Ogni push successivo su main non richiede argomenti |
Domande frequenti su git push
Cosa fa git push?
Invia i commit che il tuo branch locale ha e quello remoto no, poi sposta il branch remoto in modo che coincida. Carica solo i commit: le modifiche non committate restano sul tuo computer, quindi fai prima il commit. Se il remote ha commit che tu non hai, il push viene rifiutato finché non fai pull o rebase.
Come faccio il push di un nuovo branch sul remote?
Esegui
git push -u origin <branch>. -u (abbreviazione di --set-upstream) crea il branch sul remote e ci collega il tuo branch locale, così in seguito git push e git pull funzionano senza argomenti. Il branch remoto non esiste fino a questo primo push.Perché git push dice 'no upstream branch'?
Il tuo branch locale non è ancora collegato a un branch remoto. Fai il push con
git push -u origin <branch> per creare il branch remoto e impostare l'upstream. Dopo, git push da solo sa dove inviare i commit.Come faccio il push dei tag?
I tag non vengono inviati per impostazione predefinita. Fai il push di un singolo tag con
git push origin <tagname>, oppure di tutti insieme con git push --tags. È un tranello comune: un tag creato in locale non compare sul remote finché non lo invii esplicitamente.Come faccio un force push in sicurezza?
Dopo aver riscritto la cronologia (con un rebase o un amend), usa
git push --force-with-lease invece di --force. Sovrascrive il remote solo se nessun altro ha fatto push dal tuo ultimo fetch, proteggendo il lavoro dei colleghi. Trovi la spiegazione completa nella pagina git force push.Cosa significa git push -u origin main?
origin è il remote (vedi git remote), main è il branch, e -u imposta quel branch remoto come upstream del tuo main locale. È il comando che GitHub mostra per un nuovo repository: dopo averlo eseguito una volta, git push e git pull su main non richiedono argomenti.Qual è la differenza tra git push e git pull?
Spostano i commit in direzioni opposte.
git push carica i tuoi commit locali sul remote; git pull scarica i nuovi commit del remote e li unisce al tuo branch. Un push rifiutato come non-fast-forward di solito significa che devi prima fare pull. Leggi git fetch vs pull per capire cosa fa pull dietro le quinte.Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire
git push in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche come lavorare con i remote passo dopo passo.