L’implementazione del controllo di versione sarebbe un’impresa semplice se si lavorasse solo come sviluppatori privati con un repo locale. Tuttavia, questo non è il caso di molti progetti professionali. Al contrario, un team di solito riunisce le risorse in un repo remoto utilizzando host come GitHub. Per questo motivo, è importante imparare a fare il push su GitHub, giacché si tratta di un’operazione che entrerà necessariamente a far parte del vostro flusso di lavoro.

In questo articolo vi mostreremo come eseguire il push su GitHub utilizzando la riga di comando. Inoltre, esamineremo le applicazioni dedicate che vi aiuteranno a rendere più fluido il processo. Alla fine dell’articolo, parleremo del perché le richieste di pull dovrebbero essere un’attività da imparare e del loro rapporto con il push del codice. Per prima cosa, però, vediamo come utilizzare GitHub per i vostri progetti.

Come uno sviluppatore o un programmatore usa GitHub

GitHub è uno strumento essenziale per gli sviluppatori e i programmatori di tutto il mondo per una serie di motivi. Permette di archiviare il codice in una posizione centralizzata, che lo rende facilmente accessibile e offre una maggiore collaborazione con altri sviluppatori.

Il logo di GitHub.
Il logo di GitHub.

Rende anche possibile tenere traccia delle modifiche apportate al proprio codice e, se necessario, tornare alle versioni precedenti. Inoltre, GitHub fornisce strumenti per la gestione di problemi e bug, rendendo più semplice la manutenzione della base di codice.

La funzionalità di collaborazione è uno dei motivi principali per cui potreste utilizzare GitHub come sistema di controllo di versione (VCS) remoto. Permette di condividere il codice, tracciare le modifiche e collaborare ai problemi senza troppe complicazioni. Questo può aiutare l’efficienza e può anche portare a una migliore qualità del codice.

GitHub offre anche un modo semplice per gestire più versioni di una base di codice, tracciare le modifiche e ripristinarle se necessario. I grandi progetti e le collaborazioni open-source sono solo due dei modi in cui GitHub dimostrerà il suo valore.

Anche nei casi d’uso più semplici può essere la scelta ideale. Ad esempio, potete archiviare il codice del vostro progetto di sviluppo web e inviare aggiornamenti remoti quando apportate modifiche. Inoltre, i progetti di integrazione continua/distribuzione continua (CI/CD) beneficeranno dell’automazione sotto forma di Azioni GitHub durante le fasi di creazione.

Un esempio di come le Azioni GitHub si inseriscono in un flusso di lavoro.
Un esempio di come le Azioni GitHub si inseriscono in un flusso di lavoro.

Nel complesso, GitHub – insieme ad altri host VCS remoti come GitLab – fornisce una piattaforma per la collaborazione, il controllo delle versioni e altri flussi di lavoro di sviluppo. Può aiutare a snellire il processo di sviluppo e a migliorare la qualità del codice. Per questo motivo, è bene imparare a fare il push su GitHub, perché questa conoscenza vi sarà utile quasi ogni giorno.

Come eseguire il push su GitHub dal terminale (riga di comando)

Il resto di questo articolo mostrerà come effettuare il push su GitHub. Si tratta di un processo semplice da capire e da eseguire.

Tuttavia, assicuratevi di aver ben impostato il progetto in anticipo, altrimenti incontrerete degli errori. Nella prima sezione vedremo quali sono gli strumenti e le competenze di cui avrete bisogno, per poi analizzare nel dettaglio il processo.

Cosa serve per fare il push su GitHub

È importante assicurarsi di aver impostato il proprio progetto in modo da supportare l’utilizzo di un repo remoto e integrare il push nel flusso di lavoro. Per questo motivo, prima di tutto, avete bisogno di un repository Git – un “repo” in cui salvare il codice. Si tratta di una cartella che contiene i file associati al progetto.

L’intero processo di controllo delle versioni inizia in un ambiente locale sul proprio computer. In seguito vi illustreremo i passaggi esatti per farlo, ma forse avete già queste conoscenze (o sapete come accedervi).

Avrete anche bisogno di un account GitHub. In realtà, potete anche utilizzare un altro host VCS online, come GitLab, BitBucket, Buddy e altri ancora. Le istruzioni che forniamo qui saranno trasferibili, per la maggior parte, ad altre piattaforme. Il confronto tra questi host va però oltre lo scopo dell’articolo.

Per inviare il codice a GitHub, potete utilizzare la riga di comando o un’interfaccia grafica (GUI). La maggior parte del nostro post riguarderà il flusso di lavoro da riga di comando, ma ci sarà anche una sezione dedicata all’utilizzo di una GUI, dato che alcune sono molto diffuse. Tuttavia, tenete presente che ogni GUI può avere un processo diverso per l’invio a GitHub, il che significa che dovrete attenervi a un’applicazione in particolare per sfruttarla al meglio.

Infine, assicuratevi di avere il giusto accesso al repo. La documentazione di GitHub è molto esaustiva e dovete cercare di ottenere i token di accesso HTTPS o l’accesso Secure Shell (SSH). Senza questo, non potrete fare nulla!

1. Creare un repository GitHub

Il primo punto consiste nel creare un nuovo repo online su GitHub. Sebbene sia possibile farlo dalla riga di comando, è altrettanto semplice farlo utilizzando un browser web.

Una volta effettuato il login o l’iscrizione a GitHub, andate nell’angolo in alto a destra dello schermo e cercate un menu a tendina Plus accanto all’avatar del profilo. Se lo aprite, vi verranno mostrate alcune opzioni tra cui New repository:

Una parte dell'interfaccia di GitHub che mostra un elenco delle ultime modifiche apportate al repo GitHub. In alto è presente un menu a tendina con una serie di opzioni. L'opzione New repository è evidenziata in blu.
Scegliere di creare un nuovo repository in GitHub.

Una volta cliccato su questa opzione, si aprirà la pagina Create a New Repository. Questa pagina vi mostrerà una serie di impostazioni che vi aiuteranno a configurare il vostro repository remoto:

La schermata Create a new repository (Crea un nuovo repository) di GitHub. Ci sono diverse opzioni, come la nomina di un proprietario, l'impostazione del nome del repository, la scelta di rendere il repo privato o pubblico e le opzioni di inizializzazione. Ci sono impostazioni per i file readme e .gitignore e la possibilità di scegliere una licenza adeguata.
Creare un nuovo repository in GitHub.

Le opzioni che imposterete qui saranno specifiche per le esigenze del progetto. Se avete già un repository locale da inviare a GitHub, spuntate meno caselle possibili per mantenere la parità tra locale e remoto.

Cliccate quindi sul pulsante Create repository e GitHub si occuperà di configurare il tutto. A questo punto, si arriva alla pagina iniziale del repository con le istruzioni su come impostare un nuovo repository locale che si colleghi a quello remoto tramite la riga di comando. Il percorso da seguire dipende dal fatto che non abbiate ancora un repo o che vogliate clonare il contenuto di un progetto esistente.

Se avete già inizializzato Git e popolato il repo locale, non dovrete fare nulla al punto 2. Potrete invece passare direttamente al terzo punto, in cui vedremo come effettuare il push del codice su GitHub dal repo locale.

2a. Clonare il repo Git remoto

Se non avete ancora un repo locale, la versione di GitHub sarà l’unica. Il modo migliore per sincronizzare entrambe le posizioni è utilizzare il comando git clone sul vostro computer. Tuttavia, avete bisogno dell’URL del repo.

Per ottenerlo, andate al repo su GitHub e cercate l’opzione verde Code sopra l’elenco dei file:

Una parte di un repo all'interno di Github. La parte principale dell'immagine mostra il menu a tendina verde Code, completo di URL HTTPS per il repo stesso e di opzioni per scaricare un file ZIP del repo e per aprirlo con GitHub Desktop..
Apertura del menu a tendina Code in GitHub.

Se non la vedete, è probabile che non abbiate ancora un repo popolato. Potete copiare l’URL del repo dal riquadro blu di configurazione rapida nella parte superiore dello schermo. Basta passare all’HTTPS utilizzando i pulsanti e copiare l’URL.

Utilizzo delle opzioni di configurazione rapida per copiare l'indirizzo URL di una repo in GitHub.
Utilizzo delle opzioni di configurazione rapida per copiare l’indirizzo URL di una repo in GitHub.

Vi consigliamo di generare un file .gitignore, in quanto sarà comunque necessario. Potete utilizzare gitignore.io per cercare gli strumenti che utilizzate e, da lì, generare un file .gitignore completo da caricare sul repo:

Il sito web gitignore.io.
Il sito web gitignore.io.

In ogni caso, una volta aperto il menu a tendina del Code, verranno mostrati gli URL per il repo. Ci saranno opzioni per HTTPS, Secure Shell (SSH) e altre. L’approccio più semplice è quello di utilizzare l’URL HTTPS. Potete cliccare sull’icona Copy accanto all’URL in questione per copiarlo negli appunti.

Successivamente, tornate al terminale o all’applicazione a riga di comando ed eseguite il comando:

git clone <full-github-url>

Una volta eseguito il comando, Git copierà il repo remoto nel vostro ambiente locale.

2b. Inizializzare Git nella cartella del progetto locale

Nelle situazioni in cui non avete ancora una versione locale del repo remoto, dovrete inizializzarne una. La maggior parte del lavoro che farete sarà locale, con il push delle modifiche al server remoto a intervalli regolari. Ecco i passaggi da seguire:

  • Per prima cosa, cd a una cartella che desiderate utilizzare per il vostro progetto.
  • Quindi, eseguite il comando git init. Questo inizializzerà Git nella cartella locale del progetto e creerà una directory .git nascosta.
  • Aggiungete il file .gitignore alla root della cartella locale del progetto, poiché non vorrete rendere visibili alcune modifiche relative ai file di sistema.

A questo punto, dovete indicizzare i vostri file attuali. Fatelo nel modo tipico utilizzando git add, quindi eseguite il commit delle modifiche:

git add .

git commit -m “Initial Commit”

git branch -M trunk

L’ultima riga cambia il vostro branch principale in un altro a vostra scelta se non avete fatto ancora il cambio da master. Quest’ultimo è un termine problematico, perché ha una connotazione negativa legata alla schiavitù, quindi è consigliabile cambiarlo. In questo caso abbiamo utilizzato trunk, ma anche main è accettabile. Se pensate che questa riga non sia necessaria, potete ometterla.

A questo punto siete pronti per imparare a fare il push su GitHub!

3. Aggiungere una nuova origine remota e inviare il codice a GitHub

Una volta creato un nuovo repository remoto su GitHub, dovrete aggiungere una nuova “remote origin” (origine remota) al vostro repository locale. Questo è essenzialmente il link al vostro repository remoto, grazie al quale quello locale saprà dove inviare le modifiche upstream.

Per farlo, inserite il seguente comando nel terminale:

git remote add origin <github-url>

In senso tecnico, il repo aggiunto può avere qualsiasi nome. Tuttavia, la maggior parte di noi lo chiama “origin”, in quanto si utilizza un solo nome per l’aggiunta del remoto e questo offre una chiarezza assoluta. A questo punto, potete effettuare il push su GitHub utilizzando il seguente comando:

git push -u origin trunk

Questo comando invia il codice alla nuova origine remota, denominata “origin”, e imposta il branch upstream su “trunk”. Potete anche effetuare il push di qualsiasi branch al repo remoto se ne avete bisogno.

Una parte della finestra del Terminale che mostra l'output di un comando git push. Mostra come il processo enumera i file, li comprime e li scrive su GitHub. Mostra anche a quale URL vanno i file, eventuali nuovi branch che devono essere impostati e un riepilogo dell'azione complessiva intrapresa: il tracciamento di un branch remoto dall'origine.
Eseguire un comando git push nel terminale.

Una volta completato il processo, dovrete verificare che il push sia andato a buon fine. Ci sono un paio di modi per farlo. Ad esempio, potete visitare il repo su GitHub e verificare che le modifiche siano attive:

La pagina iniziale di un repo su GitHub. Mostra il percorso del repo, una selezione di opzioni di navigazione per svolgere diverse attività e un elenco di modifiche basato su un commit recente. Sono presenti anche informazioni sul repo, come la licenza, la descrizione e la programmazione dei rilasci.
Controllare lo stato di un repo Git su GitHub.

Potete anche eseguire git log dalla riga di comando:

La parte superiore di una finestra del Terminale che mostra l'output di un comando git log. L'hash del commit è visualizzato in giallo, mentre le informazioni sul ramo sono in rosso. Sono presenti informazioni sull'autore e sulla data del commit, oltre a un messaggio di commit per ciascuno.
Eseguire un comando git log nel terminale e visualizzare l’output.

Questo comando visualizza tutti i commit del repo, compreso quello di cui avete appena eseguito il push. Se il commit è presente nel log, il push ha avuto successo.

Come effettuare il push su GitHub senza errori

In alcuni casi, potreste riscontrare un errore quando tentate di eseguire il push del codice su GitHub:

Errore della chiave RSA dopo l'esecuzione di un push git.
Errore della chiave RSA dopo l’esecuzione di un push git.

Questo accade quando si dispone già di una connessione sicura a GitHub attraverso un vecchio progetto che utilizza una vecchia chiave RSA. Abbiamo una guida su come risolvere questo problema in generale. Per risolvere il problema in modo specifico per GitHub, potete seguire questa procedura:

ssh-keygen -R github.com

Questo aggiornerà il file “host conosciuti” e visualizzerà un messaggio di conferma:

Rimozione di una vecchia chiave host tramite il Terminale.
Rimozione di una vecchia chiave host tramite il Terminale.

Da qui, eseguite quanto segue per aggiungere la nuova chiave RSA al vostro file di host conosciuti:

curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts

In effetti, anche in questo caso potreste vedere un errore relativo al pacchetto jq. In questo caso, potete eseguire una delle operazioni qui sotto, a seconda del sistema operativo:

  • Windows: curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
  • Mac: brew install jq
  • Linux: apt-get update | apt-get -y install jq

Una volta installato, eseguite nuovamente il comando e attendete che venga completato:

La parte superiore di una finestra del Terminale che mostra il risultato dell'esecuzione di un comando per creare una nuova chiave RSA e aggiungerla al file degli host conosciuti. Mostra il comando completo e un riepilogo del trasferimento dei dati.
Creare una nuova chiave RSA utilizzando il terminale.

Infine, eseguite nuovamente il comando git push e questa volta dovreste vedere il processo completato. In caso contrario, è probabile che il problema sia dovuto a chiavi SSH errate o che sia necessario impostare connessioni sicure utilizzando chiavi dedicate. Abbiamo una guida completa su come generare nuove chiavi SSH per GitHub e la documentazione di GitHub è completa anche qui.

Utilizzare un’interfaccia grafica per inviare il codice a GitHub

Sebbene il processo di invio del codice a GitHub sia semplice una volta impostato, ci sono molti passaggi, avvertenze e sottoprocessi da considerare. Una GUI può semplificare questo processo.

Ad esempio, avrete a disposizione tutte le funzionalità della riga di comando ma con un’interfaccia più gradevole (in alcuni casi con il drag-and-drop). Inoltre, spesso è più facile visualizzare e gestire le modifiche attraverso una GUI, soprattutto se non avete familiarità con gli strumenti della riga di comando.

Se sapete già che non avrete mai bisogno di usare un’app GUI per accedere a un altro host VCS remoto, GitHub Desktop potrebbe fare al caso vostro.

L'interfaccia GitHub Desktop, che mostra una cronologia dei commit sul lato sinistro e le differenze di codice all'interno di un commit specifico nella finestra principale. Ci sono numerose aggiunte di riga che utilizzano l'evidenziazione verde.
L’applicazione GitHub Desktop.

L’applicazione permette di creare e gestire i repository, fare il commit delle modifiche e inviarle a GitHub con pochi clic. Dispone della funzionalità drag-and-drop e anche di uno strumento “visual diff” che semplifica l’identificazione delle modifiche al codice tra le varie versioni:

Una parte dell'interfaccia di GitHub Desktop che mostra un singolo commit e le relative modifiche. Mostra la rimozione degli spazi bianchi che utilizzano l'evidenziazione rossa e le aggiunte di righe che utilizzano l'evidenziazione verde.
Visualizzazione delle differenze in un commit con GitHub Desktop.

Sourcetree è un’altra popolare interfaccia grafica di Git che abbiamo analizzato nella nostra carrellata di strumenti per lo sviluppo web. Anche se il VCS preferito è BitBucket (perché è un prodotto Atlassian), potete comunque utilizzare questo strumento con GitHub. Lo strumento per la risoluzione dei conflitti di fusione è molto utile ed è una delle sue caratteristiche principali.

GitKraken è probabilmente l’applicazione con la migliore interfaccia grafica disponibile e offre una versione gratuita per i repository locali e pubblici. Supporta tutti i principali host VCS: GitHub, ovviamente, ma anche GitLab e BitBucket, tra gli altri. Ci piace molto la sua rappresentazione visiva dei repo e la soluzione offre anche funzionalità utili per i team.

Usare GitHub Desktop per fare push su GitHub

Anche se la procedura per ogni applicazione sarà leggermente diversa, GitHub Desktop è semplice da usare. Si lavora in un’unica schermata che utilizza varie finestre e pannelli. Una volta apportata una modifica a un file (che potete aprire all’interno dell’editor che preferite grazie al menu contestuale del tasto destro del mouse), eseguite il commit utilizzando un piccolo widget sullo schermo:

Effettuare il commit di una modifica in GitHub Desktop.
Effettuare il commit di una modifica in GitHub Desktop.

Questo commit diventerà parte della sezione Push Origin nella barra degli strumenti superiore. Se non avete modifiche da eseguire, verrà visualizzata una notifica per effettuare il push all’origine remota:

L'interfaccia GitHub Desktop che mostra che non ci sono modifiche locali. Ci sono una serie di opzioni nella finestra principale per inviare commit al repository remoto, aprire il repository in un editor, visualizzare quei file sul vostro computer e visualizzare la pagina del repository all'interno dell'interfaccia web di GitHub.
Spingere le modifiche all’origine remota all’interno di GitHub Desktop.

Si tratta di una soluzione che consente di apportare modifiche al vostro repo GitHub con un solo clic. L’intero flusso di lavoro è rapido, indolore e semplice da eseguire.

Usare l’Hosting di Applicazioni di Kinsta e GitHub

Se siete clienti Kinsta, potete portare tutte le vostre applicazioni da noi. Il nostro Hosting di Applicazioni e Database permette di distribuire quasi tutte le applicazioni utilizzando diversi linguaggi, come PHP, Node, Python e altri ancora. Potrete connettervi a GitHub senza dover utilizzare una serie di comandi Git.

Per iniziare, accedete alla dashboard di Kinsta e andate alla schermata Applicazioni. Al primo accesso avrà un aspetto scarno:

Il cruscotto di MyKinsta, che mostra la pagina Applicazioni. C'è una grafica viola di imbuti e tubi e una piccola sezione che mostra un pulsante Aggiungi servizio in viola e un pulsante Ulteriori informazioni in bianco. Ci sono anche brevi istruzioni su cosa significa aggiungere il primo servizio.
La pagina Applicazioni di MyKinsta all’interno della dashboard.

Tuttavia, se cliccate sul pulsante Aggiungi servizio, avrete la possibilità di distribuire un’applicazione o un database. Per questo esempio, sceglieremo l’applicazione:

Un primo piano della finestra di dialogo per la creazione della pagina Applicazioni. Mostra un pulsante Aggiungi servizio viola con un menu a discesa per creare un'applicazione o un database. C'è un pulsante bianco Ulteriori informazioni e indicazioni su cosa aspettarsi una volta creato un nuovo servizio.
Aggiungere un nuovo servizio utilizzando il pulsante corrispondente nella schermata Applicazioni di Kinsta.

Kinsta vi chiederà di connettervi a GitHub per importare i repository dalla piattaforma:

La pagina delle applicazioni di MyKinsta che mostra una finestra di dialogo popup da integrare con GitHub. C'è una breve descrizione delle azioni eseguite e pulsanti sia per annullare l'integrazione che per continuare con GitHub.
Scegliere di effettuare l’integrazione con GitHub una volta aggiunto un nuovo servizio.

La procedura guidata che segue vi aiuterà a configurare la vostra applicazione. Per prima cosa dovete scegliere un repository da GitHub, quindi selezionare il branch predefinito:

La procedura guidata Aggiungi applicazione, che mostra i quattro passaggi per configurare un'app e integrarla con GitHub. Sono disponibili numerose opzioni, come la scelta di un repository e di un ramo, l'aggiunta di un nome dell'applicazione, la scelta di una posizione del data center e altro ancora. In basso c'è un pulsante Continua viola e un pulsante Annulla bianco.
Impostazione dei dettagli dell’applicazione per il deployment all’interno della procedura guidata di MyKinsta “Aggiungi applicazione”.

Dovete anche dare un nome all’applicazione all’interno di MyKinsta e selezionare un data center. Una volta cliccato su Continua, dovrete modificare le impostazioni dell’ambiente di build:

La sezione Ambiente di Build della procedura guidata Aggiungi applicazione. Mostra un menu a discesa per selezionare una delle tre opzioni della build machine, quindi una sezione parziale per scegliere un Dockerfile per la distribuzione.
Impostazione delle opzioni dell’ambiente di build nella procedura guidata di installazione MyKinsta.

Qui avete a disposizione un paio di opzioni:

  • Scegliere una build machine dall’elenco.
  • Impostare l’immagine di un container, utilizzando l’automazione o un percorso specifico.

A questo punto, dovete impostare le risorse e i processi. I nostri esempi di avvio rapido includono i processi web di cui avrete bisogno, ma potete anche crearne di vostri. Tenete presente che potete avere tutti i processi che il vostro budget consente:

La sezione Risorse della procedura guidata Aggiungi applicazione. Mostra le opzioni per impostare un nome di processo, selezionare un tipo di processo, aggiungere un comando di avvio, selezionare una dimensione del pod e specificare un numero di istanze. C'è anche un pulsante bianco Aggiungi nuovo processo.
Specificare le risorse nella schermata della procedura guidata “Aggiungi applicazione”.

Una volta visualizzati i costi di utilizzo mensili, potete effettuare il pagamento. A questo punto, siete pronti per utilizzare l’Hosting di Applicazioni completo di integrazione con GitHub. C’è molto altro da scoprire sull’Hosting di Applicazioni e Database e la nostra documentazione è completa e approfondita.

Riepilogo

GitHub è uno strumento essenziale per sviluppatori e programmatori. Offre un repository centralizzato per archiviare, monitorare e collaborare sul codice. Una volta appreso come effettuare il push del vostro codice su GitHub da un repo locale, potrete partecipare a questa collaborazione.

Usando la riga di comando, è semplice inviare il codice a GitHub e vi serviranno solo una manciata di comandi una volta configurato il tutto. Tuttavia, potreste prendere in considerazione l’idea di usare un’applicazione GUI dedicata, come GitKraken o GitHub Desktop. Queste applicazioni possono eliminare la riga di comando dall’equazione e permettervi di eseguire quasi tutte le operazioni necessarie con Git da un’interfaccia familiare.

Inoltre, GitHub è fantastico in combinazione con l’Hosting di Applicazioni e Database di alto livello di Kinsta. Questi vi permetteno di collegare il vostro repo GitHub alla nostra rete di 25 data center e di supportare una moltitudine di framework diversi. Anche il prezzo basato sulle risorse è competitivo e alla portata di tutti!

Avete qualche domanda su come effettuare il push su GitHub? Chiedeteci tutto nella sezione commenti qui sotto!

Jeremy Holcombe Kinsta

Content & Marketing Editor presso Kinsta, web developer di WordPress e content writer. Al di fuori di tutto ciò che riguarda WordPress, mi piacciono la spiaggia, il golf e il cinema. Ho anche i problemi di tutte le persone più alte della media ;).