CodeGym /Corsi /JAVA 25 SELF /Ciclo quotidiano dello sviluppatore: Commit, Push e .giti...

Ciclo quotidiano dello sviluppatore: Commit, Push e .gitignore

JAVA 25 SELF
Livello 25 , Lezione 1
Disponibile

1. Inizio: clonazione del progetto

Partiamo da dove ci eravamo fermati nella lezione precedente. Hai un repository creato su GitHub e ora devi ottenerne una copia locale sul tuo computer per iniziare a lavorare. Questo processo si chiama clonazione.

Passo 1. Avvia la tua IDE. Se hai un progetto aperto, chiudilo tramite File -> Close Project. Nella schermata iniziale seleziona Clone Repository oppure Get from VCS.

Passo 2. Nella finestra che si apre incolla l’URL del tuo repository. Questo metodo è utile se stai clonando il repository di qualcun altro. Puoi copiare l’URL dalla pagina del repository su GitHub.

Se stai clonando il tuo repository (il nostro caso), il modo più semplice è accedere al tuo account GitHub direttamente dall’IDE. A tal fine scegli l’opzione Log in to GitHub. La tua IDE aprirà il browser per l’autorizzazione.

Finestra di autorizzazione della JetBrains IDE su GitHub

Nella pagina che si apre, premi pure il pulsante verde Authorize JetBrains. Dopodiché potrai scegliere i tuoi repository direttamente dall’elenco nell’IDE. Seleziona il progetto desiderato e premi Clone.

Passo 3. La tua IDE chiederà se ti fidi di questo progetto. Poiché è il tuo repository, premi Trust Project.

Passo 4. Configurazione dell’antivirus (per utenti Windows)

L’antivirus di Windows può avvisare che l’IDE sta tentando di eseguire azioni a lui sconosciute. Poiché stiamo per creare ed eseguire programmi, dobbiamo consentire all’IDE di lavorare senza restrizioni. Premi il pulsante «Automatically», così l’IDE aggiungerà autonomamente le cartelle necessarie alle esclusioni dell’antivirus.

2. Salvataggio delle modifiche: commit

commit — è un’«istantanea», ovvero lo stato salvato del tuo progetto in un determinato momento. Pensalo come un punto di salvataggio in un videogioco: puoi sempre tornarci se qualcosa va storto. Ogni commit ha un identificatore univoco e un messaggio che descrive le modifiche apportate.

        gitGraph
        commit id: "Initial commit"
        commit id: "Add user authentication"
        commit id: "Fix login button bug"
        commit id: "Refactor database connection"
    
Cronologia dei commit. Ogni nuovo commit si basa sul precedente, creando una cronologia dell’evoluzione del progetto.

Passo 1. Apporta modifiche.

Se hai clonato un repository appena creato, conterrà un solo file — README.md

Apri il file README.md e aggiungi la descrizione del tuo progetto. Non appena inizi a modificarlo, l’IDE evidenzierà il suo nome in blu nel pannello del progetto. Ciò significa che il file è stato modificato, ma le modifiche non sono ancora salvate su Git. L’IDE aggiungerà una linea verde nei punti in cui hai apportato modifiche.

Passo 2. Apri la finestra Commit.

Sulla sinistra dell’IDE c’è la scheda Commit. Aprendola, vedrai tutte le modifiche pronte per essere salvate. Per il primissimo commit questa finestra richiede un’attenzione particolare.

Vediamo nel dettaglio cosa c’è:

  • Changes: qui si trovano i file già tracciati da Git ma modificati. Nel nostro caso è README.md, in cui abbiamo aggiunto il piano del progetto.
  • Unversioned Files: sono i nuovi file che Git vede nella cartella del progetto ma che non traccia ancora.

Potrebbe sorgere una domanda: bisogna aggiungere tutti questi file di servizio al repository?

La buona notizia è che quando abbiamo creato il repository su GitHub, abbiamo scelto un template di .gitignore. Questo file contiene già delle regole che dicono a Git di ignorare cartelle o file non necessari. Ma ne parleremo più in dettaglio alla fine della lezione.

Per ora, il nostro obiettivo per il primo commit è aggiungere tutti i file principali del progetto alla cronologia e scrivere il messaggio del commit.

Passo 3. Esegui il commit.

Premi il pulsante Commit. Fatto! Hai salvato l’«istantanea» del tuo progetto nel repository locale. Il file tornerà di nuovo al colore normale.

3. Invio delle modifiche su GitHub: Push

I tuoi commit per ora sono salvati solo sul tuo computer. Per condividerli con il team o conservarli in un luogo sicuro, devi inviarli al repository remoto su GitHub.

        sequenceDiagram
        participant Repository locale (il tuo computer)
        participant Repository remoto (GitHub)

        note over Repository locale (il tuo computer): Hai effettuato uno o più commit.
Esistono solo qui. Repository locale (il tuo computer) ->> Repository remoto (GitHub): git push (inviare i commit) note over Repository remoto (GitHub): I tuoi commit sono stati copiati
e salvati in modo sicuro sul server.
I tuoi commit locali vengono inviati al server remoto, sincronizzando la cronologia del progetto.

Passo 1. Premi il pulsante Push.

Nell’angolo in alto a destra dell’IDE c’è una freccia verde verso l’alto — è il pulsante Push. Premilo.

Passo 2. Verifica e conferma.

Si aprirà una finestra in cui vedrai tutti i commit pronti per l’invio. È la tua ultima occasione per assicurarti di inviare esattamente ciò che serve. Premi Push.

Se tutto è andato a buon fine, vedrai i messaggi: Pushed commits to origin/main. Create pull request

Passo 3. Controlla il risultato su GitHub.

Dopo l’invio riuscito, apri la pagina del tuo repository su GitHub. Vedrai che le tue modifiche sono comparse lì.

4. Pannello di controllo di Git

Nella tua IDE c’è un menu speciale Git, che puoi trovare nella barra superiore. È il tuo centro di controllo delle versioni. Diamo un’occhiata rapida ai suoi punti chiave.

  • Commit: apre la finestra, già nota, per salvare le modifiche.
  • Push: apre la finestra per inviare i tuoi commit su GitHub.
  • Update Project: funzione molto importante. Scarica le modifiche recenti degli altri membri del team (esegue git pull). Premila ogni mattina prima di iniziare a lavorare!
  • Branches: apre la finestra per la gestione dei branch. Ne parleremo in dettaglio nella prossima lezione.
  • Show Git Log: mostra l’intera cronologia dei commit del tuo progetto. La tua macchina del tempo personale.

5. Utilizzo dei file .gitignore

Se hai aggiunto al progetto alcuni file di servizio e non vuoi che finiscano per errore nel repository, puoi aggiungerli alle esclusioni. A tal fine c’è un file chiamato .gitignore. È molto comodo quando nel progetto ci sono file che non devono essere versionati (ad esempio file temporanei, log, password).

Passo 1. Per iniziare, crea nel tuo progetto un file che desideri ignorare. Ad esempio, notes.txt. Dopo aver creato il file, premi Cancel se l’IDE propone di aggiungerlo a Git.

Passo 2. Clic destro sul file creato nella finestra «Project». Vai su Git --> Add to .gitignore --> Add to .gitignore. Questa opzione aggiunge il file selezionato al file .gitignore nella root del tuo progetto.

Se non avevi ancora un file .gitignore, l’IDE proporrà di crearlo. Accetta.

Passo 3. La tua IDE aggiungerà automaticamente il nome del file a .gitignore.

Dopo averlo aggiunto a .gitignore, i file ignorati verranno visualizzati in grigio o marrone. Quando proverai a fare il commit delle modifiche, questi file verranno ignorati. Puoi aggiungere la cartella .idea all’ignore.

Non dimenticare di fare il commit dello stesso file .gitignore nel repository e inviare le modifiche su GitHub, in modo che tutti i partecipanti al progetto usino le stesse regole di ignoramento dei file.

Esclusione di file locali: .git/info/exclude

Oltre al file .gitignore, utilizzato per escludere i file per tutti gli utenti del progetto, Git consente di creare regole di ignoramento locali nel file .git/info/exclude. Non verranno committate nel repository e avranno effetto solo sulla tua copia locale del progetto.

Questo può essere utile, ad esempio, per ignorare file creati dalla tua IDE che non dovrebbero entrare nel sistema di controllo versione, ma sono specifici solo per te.

Importante! Le regole di ignoramento locali hanno effetto solo sulla tua copia locale del repository.

E se ho già fatto il commit?

.gitignore ignora solo i file nuovi, non ancora tracciati. Se hai già fatto il commit di un file, esso si trova nella cronologia del repository e Git continuerà a tracciarlo, anche se lo aggiungi a .gitignore. Per queste situazioni esiste un comando da terminale: git rm --cached <file>. Ma è un argomento da approfondire a parte.

Regole per .gitignore

Nel file .gitignore si specificano i pattern dei nomi di file e cartelle che Git deve ignorare.

Le righe vuote vengono ignorate. Per aggiungere un commento, inizia la riga con il simbolo #.

Modelli:

  • * — sostituisce qualsiasi numero di caratteri. Ad esempio, *.log ignora tutti i file con estensione .log.
  • / — alla fine del pattern indica una directory. Ad esempio, logs/ ignora tutto il contenuto della cartella logs.
  • ! — all’inizio della riga inverte la regola. Ad esempio, se hai la regola *.log ma vuoi tracciare important.log, aggiungi la riga !important.log.
  • ** — corrisponde a qualsiasi numero di cartelle annidate. Ad esempio, **/temp ignora le cartelle temp a qualsiasi livello di annidamento.

Esempio di file .gitignore


# Codice compilato
/bin/
/obj/

# File temporanei
*.tmp
*.swp

# Log
*.log

# Cartelle create dall'IDE
.idea/
*.user
*.suo

# Ambienti virtuali e dipendenze
/venv/
/node_modules/

Modelli pronti

Non devi scrivere questi file da zero. Esistono modelli pronti e verificati dalla community:

  1. Raccolta di .gitignore di GitHub per vari linguaggi e framework: https://github.com/github/gitignore.
  2. gitignore.io — un comodo servizio web che genera il file .gitignore per le tue tecnologie.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION