GitHub è uno strumento di lavoro collaborativo distribuito Open Source che ha introdotto il concetto di "Social Code": il social network dei programmatori.
Definizione
GitHub è servizio web che offre un sistema di versionamento basato su Git: il sistema di versionamento creato da Linus Torvalds dieci anni fa.
Offre tutte le funzioni necessarie a gestire le versioni di documenti di testo che possono contenere, chiaramente, sia testo in linguaggio naturale o artificiale, come è il codice sorgente.
Ad oggi oltre 25 milioni di progetti sono ospitati da GitHub.
Ad oggi oltre 25 milioni di progetti sono ospitati da GitHub.
Si ha la possibilità di creare, oltre a degli account, delle "organizzazioni" che raccolgono più "committers" e vari "repository" che contengono i nostri progetti o quelli dell'organizzazione.
I repository possono essere liberamente accessibili, quindi pubblici, oppure privati. In quest'ultimo caso sarà necessario sottoscrivere un servizio a pagamento e potremo definire chi ha accesso e in che modo ai nostri progetti.
Se ci fosse l'esigenza di gestire progetti privati Git, come ogni prodotto open source, è facilmente implementabile su un server proprio sul quale si possono impostare anche progetti riservati senza dover sottoscrivere nessun tipo di abbonamento.
Git è il sistema di versionamento preferito da Google, Facebook, Apple, Linux ...
Qui non tratterò l'installazione perché guide passo-passo per i vari sistemi operativi si trovano in rete abbondanti e aggiornate.
Caratteristiche
Il sistema Git è un sistema distribuito: il server centrale conserva le copie delle varie versioni dei file dei vari progetti ma anche ogni membro del progetto fa da "backup" detenendone una copia locale. Questo gli conferisce un grado di sicurezza elevatissimo perché non è solo demandato al server.
Funzionalità
Le funzioni di versionamento sono completate da altre che strizzano l'occhio ai social network.
Cruscotto
Ogni utente di GitHub ha il suo cruscotto con informazioni di sintesi sulla sua attività diretta e su quella fatta all'interno di una "organizzazione":
Cruscotto
Ogni utente di GitHub ha il suo cruscotto con informazioni di sintesi sulla sua attività diretta e su quella fatta all'interno di una "organizzazione":
Una volta creato "repository" sarà possibile creare delle sottodirectory inserendo semplicemente in nome della directory seguita da un "/":
Per creare un nuovo file basterà cliccare sul simbolo "+":
Una volta caricato il file è possibile inserire un messaggio che caratterizzi il "commit":
E' possibile creare una Wiki per la documentazione del nostro progetto:
Su ogni singolo file è possibile:
- Scaricarlo
- Modificarlo
- Cancellarlo
- Guardarne la storia delle varie versioni ("History")
Su ogni progetto è possibile
- Osservarlo ("Watch") per avere le notifiche quando viene modificato
Branch e MergePer creare un nuovo file basterà cliccare sul simbolo "+":
Su ogni singolo file è possibile:
- Scaricarlo
- Modificarlo
- Cancellarlo
- Guardarne la storia delle varie versioni ("History")
I file sottoposti a Git possono avere tre "stati":
- Modified : un file del progetto che ho scaricato viene da me modificato in locale.
- Staged : il file modificato lo contrassegno perché Git lo committi con il prossimo "commit".
- Committed : inviato al server affinché lo tratti come una nuova versione da distribuire.
- Osservarlo ("Watch") per avere le notifiche quando viene modificato
- Crearne una "diramazione" ("branch" vedi sotto)
- Crearne una "derivazione" ("fork") che altro non è che una copia associata al nostro account GitHub del progetto derivato.
- Gestire delle "richieste" ("issue") come to-do list, elenco di bug, requisiti ecc.
Il concetto e la gestione dei "branch" è da approfondire accuratamente. Con branch si intende una "diramazione" dal progetto principale di uno sviluppo parallelo di una parte o di tutto il progetto.
Il branch può vivere di vita propria per sempre oppure può essere, ad un certo punto, raccordato con il progetto principale mediante l'operazione di "merge".
Per gli utilizzatori di Eclipse esiste un comodo plugin che si chiama EGit. Basta cercarlo nel Marketlace:
E dopo aver selezionata l'apposita perspective sarà possibile impostare la connessione al nostro progetto su GitHub da clonare in locale:
E finalmente potremo lavorare con la copia locale del progetto Git avendo a disposizione tutte le funzioni fornite da GitHub:
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.
Commenti
Posta un commento