Articolo originale: The Git Push Command Explained di freeCodeCamp.org

Tradotto e adattato da: Ilenia Magoni

Il comando git push ti permette di mandare i commit dal tuo branch locale nel tuo repository Git locale al repository remoto.

Per poter fare il push, devi assicurarti che tutti i tuoi cambiamenti sono salvati nei commit.

La sintassi del comando è la seguente:

git push <repo name> <branch name>

Ci sono un numero di diverse opzioni che puoi usare con il comando, puoi impararne di più leggendo la documentazione di git o eseguendo il comando git push --help.

Fare il push in un branch e repository remoto specifici

Per poter fare il push del codice, devi prima di tutto clonare il repository sulla tua macchina locale.

# Una volta che hai clonato il repo, lavorerai sul branch di default (il default è `main`
git clone https://github.com/<git-user>/<repo-name> && cd <repo-name>
# fai i cambiamenti e salvali nell'area di stage (ripeti il comando `git add` per ogni file, o usa `git add .` per salvarli tutti)
git add <filename>
# ora fai il commit del tuo codice
git commit -m "added some changes to my repo!"
# fai il push dei tuoi cambiamenti al branch `main` su github
git push origin master

Per imparare di più sui branch, guarda i link qua sotto:

Fare il push in uno specifico repository remoto e tutti i branch al suo interno

Se vuoi fare il push dei tuoi cambiamenti nel repository remoto e tutti i branch che contiene, puoi usare:

git push --all <REMOTE-NAME>

in cui:

  • --all è l'opzione che segnala che vuoi fare il push di tutti i branch al repository remoto
  • REMOTE-NAME è il nome del repository remoto in cui vuoi fare il push

Fare il push in un branch specifico con l'opzione force

Se vuoi ignorare i cambiamenti locali fatti al repository di Git su GitHub (cosa che molti developer fanno per cambiamenti urgenti al server di sviluppo) allora puoi usare l'opzione --force per fare il push ignorando questi cambiamenti.

git push --force <REMOTE-NAME> <BRANCH-NAME>

in cui:

  • REMOTE-NAME è il nome del repository remoto in cui vuoi fare il push dei cambiamenti
  • BRANCH-NAME è il nome del branch remoto in cui vuoi fare il push dei cambiamenti

Fare il push ignorando gli hook pre-push di git

Come default git push attiva il toggle  --verify. Questo vuol dire che git eseguirà gli script pre-push lato client che possono essere stati configurati. Se questi script falliscono, il push non viene eseguito (gli hook pre-push sono utili per fare cose come controllare se i messaggi di commit sono conformi agli standard, eseguire i test unitari, ecc...). Occasionalmente potresti voler ignorare questo comportamento di default, per esempio nello scenario in cui vuoi fare il push dei tuoi cambiamenti a un branch di feature per permettere a un altro collaboratore di farne il pull, ma i tuoi cambiamenti per il lavoro in corso fanno fallire i test unitari. Per ignorare l'hook, puoi usare l'opzione --no-verify con il tuo comando push.

git push --no-verify

Altre informazioni: