CodeGym /Corsi /C# SELF /Ciclo quotidiano dello sviluppatore: Commit, Push e .giti...

Ciclo quotidiano dello sviluppatore: Commit, Push e .gitignore

C# SELF
Livello 26 , Lezione 1
Disponibile

1. Inizio: clonare il progetto

Iniziamo da dove ci siamo fermati nella lezione precedente. Hai un repository creato su GitHub e ora devi ottenere 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 finestra iniziale scegli Clone Repository o Get from VCS.

Passo 2. Nella finestra che si apre incolla l'URL del tuo repository. Questo metodo è comodo se stai clonando il repository di qualcun altro. L'URL può essere copiato dalla pagina del repository su GitHub.

Se stai clonando il tuo repository (il nostro caso), il modo più semplice è effettuare il login al tuo account GitHub direttamente dall'IDE. Per farlo seleziona l'opzione Log in to GitHub. La tua IDE aprirà il browser per l'autenticazione.

Finestra di autorizzazione JetBrains IDE su GitHub

Sulla pagina che si apre premi tranquillamente il pulsante verde Authorize JetBrains. Dopo potrai scegliere i tuoi repository direttamente dalla lista nell'IDE. Seleziona il progetto che ti interessa e clicca Clone.

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

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

L'antivirus di Windows potrebbe avvisare che l'IDE sta cercando di eseguire azioni sconosciute. Dal momento che vogliamo creare ed eseguire programmi, dobbiamo permettere all'IDE di lavorare senza restrizioni. Clicca il pulsante «Automatically», così l'IDE aggiungerà automaticamente le cartelle necessarie alle esclusioni dell'antivirus.

2. Salvare le modifiche: Commit

commit — è un "istantanea", ovvero lo stato salvato del tuo progetto in un dato momento. Pensalo come un punto di salvataggio in un gioco: puoi sempre tornare lì se qualcosa va storto. Ogni commit ha un identificatore unico 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"
    
Storia dei commit. Ogni nuovo commit si basa sul precedente, creando una cronologia dello sviluppo del progetto.

Passo 1. Apporta delle modifiche.

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

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

Passo 2. Apri la finestra Commit.

A sinistra nell'IDE c'è la scheda Commit. Aprendola vedrai tutte le modifiche pronte per essere salvate. Per il primo commit questa finestra richiede attenzione particolare.

Vediamo cosa stiamo guardando:

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

Potresti chiederti: devo aggiungere tutti questi file di servizio al repository?

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

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

Passo 3. Esegui il commit.

Clicca il pulsante Commit. Fatto! Hai salvato l'istantanea del tuo progetto nel repository locale. Il file tornerà al suo colore normale.

3. Inviare le modifiche su GitHub: Push

I tuoi commit per ora risiedono solo sul tuo computer. Per condividerli con il team o conservarli in un posto 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 fatto 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 vengono copiati
e salvati in modo sicuro sul server.
I tuoi commit locali vengono inviati al server remoto, sincronizzando la cronologia del progetto.

Passo 1. Clicca il pulsante Push.

In alto a destra nell'IDE c'è una freccia verde verso l'alto — è il pulsante Push. Cliccala.

Passo 2. Controlla e conferma.

Si aprirà una finestra dove vedrai tutti i commit pronti per essere inviati. È la tua ultima occasione per assicurarti che stai inviando solo ciò che serve. Premi Push.

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

Passo 3. Verifica su GitHub.

Dopo l'invio con successo apri la pagina del tuo repository su GitHub. Vedrai che le tue modifiche sono apparse lì.

4. Pannello di controllo Git

Nella tua IDE c'è un menu speciale Git, che puoi trovare nella barra superiore. È il tuo centro di controllo delle versioni. Facciamo una rapida panoramica delle voci principali.

  • Commit: apre la finestra che già conosci per salvare le modifiche.
  • Push: apre la finestra per inviare i tuoi commit su GitHub.
  • Update Project: funzione molto importante. Scarica le modifiche più recenti fatte dagli altri membri del team (esegue git pull). Usala ogni mattina prima di iniziare a lavorare!
  • Branches: apre la finestra per gestire i branch. Ne parleremo dettagliatamente nella prossima lezione.
  • Show Git Log: mostra tutta la storia dei commit del tuo progetto. La tua macchina del tempo personale.

5. Uso dei file .gitignore

Se hai aggiunto nel progetto dei file di servizio e non vuoi che finiscano per sbaglio nel repository, puoi aggiungerli alle esclusioni. Per questo c'è il file chiamato .gitignore. È molto comodo quando nel progetto ci sono file che non dovrebbero essere tenuti nel sistema di controllo versione (per esempio file temporanei, log, password).

Passo 1. Per prima cosa crea il file nella cartella del progetto che vuoi ignorare. Per esempio, notes.txt. Dopo aver creato il file premi Cancel se l'IDE ti propone di aggiungerlo a Git.

Passo 2. Fai 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 radice 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 in .gitignore.

Dopo l'aggiunta a .gitignore i file ignorati saranno mostrati in grigio o marrone. Quando tenterai di fare il commit queste voci saranno ignorate. La cartella .idea può essere aggiunta alle esclusioni.

Non dimenticare di committare il file .gitignore stesso nel repository e di inviare le modifiche su GitHub, così tutti i membri del progetto useranno le stesse regole di ignoramento dei file.

Escludere file locali: .git/info/exclude

Oltre al file .gitignore, che viene usato per escludere file per tutti gli utenti del progetto, Git offre la possibilità di creare regole di ignoramento locali nel file .git/info/exclude. Queste non verranno committate nel repository e funzioneranno solo per la tua copia locale del progetto.

Questo può essere utile, per esempio, per ignorare file generati dalla tua IDE che non dovrebbero finire nel controllo versione ma che sono specifici solo per te.

Importante! Le regole di ignoramento locali valgono solo per la tua copia locale del repository.

E se ho già committato?

.gitignore ignora solo i file nuovi, non ancora tracciati. Se hai già committato un file, esso è nella storia del repository e Git continuerà a tracciarlo anche se lo aggiungi a .gitignore. Per questi casi c'è il comando da terminale: git rm --cached <file>. Ma su questo dovremo leggere separatamente.

Regole per .gitignore

Nel file .gitignore si indicano pattern di nomi di file e cartelle che Git deve ignorare.

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

Pattern:

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

Esempio di file .gitignore


# Codice compilato
/bin/
/obj/

# File temporanei
*.tmp
*.swp

# Log
*.log

# Cartelle create dalle IDE
.idea/
*.user
*.suo

# Ambienti virtuali e dipendenze
/venv/
/node_modules/

Template pronti

Non è necessario scrivere questi file da zero. Esistono template già pronti e verificati dalla community:

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