Spingere i commit in un repository remoto

  • di

Il comando git push accetta due argomenti:

  • Un nome remoto, per esempio, origin
  • Un nome di ramo, per esempio, main

Ad esempio:

git push <REMOTENAME> <BRANCHNAME> 

Per esempio, di solito si esegue git push origin main per spingere le modifiche locali al proprio repository online.

Rinominare i rami

Per rinominare un ramo, si usa lo stesso comando git push, ma si aggiunge un altro argomento: il nome del nuovo ramo. Per esempio:

git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME> 

Questo spinge il LOCALBRANCHNAME al tuo REMOTENAME, ma viene rinominato in REMOTEBRANCHNAME.

Gestione degli errori “non-fast-forward”

Se la tua copia locale di un repository è fuori sincronia con, o “dietro”, l’upstreamrepository a cui stai spingendo, riceverai un messaggio che dice non-fast-forward updates were rejected.Questo significa che devi recuperare, o “fetch”, i cambiamenti dell’upstream, prima di essere in grado di spingere i tuoi cambiamenti locali.

Per maggiori informazioni su questo errore, vedi “Trattare gli errori non-fast-forward.”

Pushing tags

Per default, e senza parametri aggiuntivi, git push invia tutti i rami corrispondenti che hanno lo stesso nome dei rami remoti.

Per spingere un singolo tag, si può dare lo stesso comando del push di un ramo:

git push <REMOTENAME> <TAGNAME> 

Per spingere tutti i tag, si può digitare il comando

git push <REMOTENAME> --tags

Eliminare un ramo o un tag remoto

La sintassi per eliminare un ramo è un po’ arcana a prima vista:

git push <REMOTENAME> :<BRANCHNAME> 

Nota che c’è uno spazio prima dei due punti. Il comando assomiglia agli stessi passi che si fanno per rinominare un ramo. Tuttavia, qui, stai dicendo a Git di non spingere nulla in BRANCHNAME su REMOTENAME. A causa di questo, git push cancella il ramo sul repository remoto.

Remote e fork

Potresti già sapere che puoi fare il “fork” dei repository su GitHub.

Quando cloni un repository che possiedi, gli fornisci un URL remoto che dice a Git dove recuperare e spingere gli aggiornamenti. Se vuoi collaborare con il repository originale, devi aggiungere un nuovo URL remoto, tipicamente chiamato upstream, al tuo clone Git locale:

git remote add upstream <THEIR_REMOTE_URL> 

Ora, puoi recuperare aggiornamenti e rami dal loro fork:

git fetch upstream# Grab the upstream remote's branches> remote: Counting objects: 75, done.> remote: Compressing objects: 100% (53/53), done.> remote: Total 62 (delta 27), reused 44 (delta 9)> Unpacking objects: 100% (62/62), done.> From https://github.com/octocat/repo> * main -> upstream/main

Quando hai finito di fare modifiche locali, puoi spingere il tuo ramo locale su GitHub e avviare una richiesta di pull.

Per maggiori informazioni su come lavorare con i fork, vedi “Syncing a fork”.

Altre letture

  • Il capitolo “Remotes” dal libro “Pro Git”
  • git remote pagina man
  • “Git cheatsheet”
  • “Git workflows”
  • “Git Handbook”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *