Introduzione a
Università degli Studi di Perugia, Laurea Triennale in Informatica
Giacomo Calabresi - Perugia, 06/11/2019
Cos’è Github?
❖ GIT: nome di un software in grado di gestire gli aggiornamenti di un file, senza andare a sovrascrivere le versioni precedenti.
❖ HUB: tradotto in italiano sta per “centro”; possiamo immaginarlo come un enorme magazzino dove salvare dei file.
Si tratta quindi di una piattaforma dove poter caricare e gestire progetti.
Glossario
❖ Repository (repo): spazio virtuale dove immagazzinare i file di un progetto.
Una “repo” può essere locale (sul vostro PC) o remota (su Github).
❖ Commit: comando che esegue uno snapshot ai file da inviare a Github.
❖ Push: con questo comando si inviano i file selezionati precedentemente.
❖ Pull: comando per scaricare gli aggiornamenti da una repo remota alla locale.
❖ Fork: copiare una repository.
❖ Branch: “ramo” indipendente che compone la repository. Il branch principale è chiamato master.
❖ Merge: unire un branch a un altro già esistente.
Inizializzazione di una repository
Dopo aver effettuato il login, basta cliccare il “+” in alto a destra e selezionare un’opzione, a seconda se si vuole creare una repository vuota o importarne una già esistente.
Nuova repository
Nel caso della creazione di una nuova repository, bisognerà compilare un form e specificare alcuni dettagli:
❖ Nome: possibilmente breve e significativo
❖ Descrizione: opzionale, ma utile per spiegare il contenuto
❖ Visibilità: pubblica o privata
❖ README: se spuntato, la repo conterrà un file chiamato “README.md”, nel quale si possono inserire informazioni per poter fruire correttamente degli altri file all’interno
❖ Licenza: tipo di licenza per proteggere i diritti dell’autore del codice
Gestione della repository
Terminati i preparativi, si possono aggiungere altri file e gestire download e upload dei contenuti tramite l’apposita barra dei comandi.
Tramite l’upload, i nuovi file saranno aggiunti, mentre file con lo stesso nome saranno sovrascritti a una nuova versione.
Git Pro… con il terminale!
❖ (Consigliato) Su Linux / Mac Os:
➢ sudo apt install git
❖ Su Windows:
➢ Andare su https://desktop.github.com/
➢ scaricare e installare il file .exe
Setup di Git da terminale
Da terminale, inserire i seguenti due comandi preliminari:
❖ git config --global user.name "nomeutente"
❖ git config --global user.email "indirizzoemail"
Scaricare la repository online creata in precedenza:
❖ cd /mio/percorso/della/repo
❖ git clone https://github.com/username/repository
Add to Commit
A questo punto si può iniziare a lavorare con i file del progetto tramite l’editor di testo preferito (Gedit, Atom, ecc…), l’importante è salvare tutto nella repository locale creata dopo il comando git clone.
Selezionare i file da inviare a Github tramite il seguente comando:
❖ git add . : per aggiungere TUTTI i file della directory
❖ git add *.estensione : per aggiungere TUTTI i file con una certa estensione (es: con *.c si aggiungono i file .c)
❖ git add nomefile : si aggiunge solo il file nomefile
Check Status (1)
Prima di procedere con la Commit è bene controllare lo “status” della repository...
Check Status (2)
Aggiungere eventuali file mancanti con l’apposito comando e ricontrollare.
Per annullare eventuali add, usare il comando git reset HEAD nomefile
Commit and Push
Con i prossimi comandi, si andranno a salvare le modifiche ai file della repository:
❖ git commit -m “descrizionecommit”
❖ git push origin master
Con commit si vanno ad aggiornare i metadati di git che controllano versione dei file e altre caratteristiche, mentre push è il comando per l’invio vero e proprio alla repository remota su Github.
Nota: a questo punto sarà richiesto di inserire nel terminale i propri username e password di Github.
DOMANDE?
Dubbi?
Incertezze?
Perplessità?
Se è tutto chiaro… Esercizio!
Cliccare il seguente link
https://classroom.github.com/a/P9M1ZyQ w
Clonare la repository in locale e provare a svolgere l’esercizio contenuto nel pdf
Non solo codice
All’interno di Github si trovano milioni di repository diverse, moltissime
contengono codice sorgente di programmi e script, ma vi sono anche risorse molto interessanti, per esempio:
❖ https://github.com/sindresorhus/awesome : un enorme elenco di materiali relativi a praticamente ogni ambito dell’universo informatico; dalla sicurezza alla programmazione, passando per il gaming.
❖ https://github.com/orsanawwad/awesome-roadmaps : una lista di cose da sapere per raggiungere i massimi livelli per molte figure IT del mondo lavorativo.