Passa ai contenuti principali

GitHub versionamento "Social"





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.

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":





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")

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.

Su ogni progetto è possibile
- 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.


Branch e Merge
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".




Eclipse Plugin
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:





Licenza Creative Commons
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.

Commenti

Post popolari in questo blog

Telecamere Ip con accesso "nascosto"

Telecamere Ip con accesso "nascosto" Storia triste di un auto-hacking obbligato che mi ha fatto scoprire come la nostra privacy è realmente messa a rischi. Storia Ho acquistato dal mercatino/fiera del Radioamatore di Fasano quattro telecamere IP. La scatola riporta "Smart Camera" LF4810. Ne ho montata una e testata in tutte le sue funzionalità per oltre un mese. Chiaramente la manualistica scarsissima, come da tradizione in questi prodotti cinesi di costo molto concorrenziale, consiste in un "pieghevole" di 4 facciate. Chiaramente non erano documentate le impostazioni necessarie per attivare i protocolli ONVIF e RTSP che mi sono indispensabili per l'uso che ne devo fare. Nonostante questa scarsa documentazione dopo l'installazione base fatta con l'apposita app: tutto sembrava corretto. Chiaramente la prima azione che ho compiuto è stata quella di cambiare la password che di default è "123". Subito dopo h...

Dynamic DNS con Duckdns.org in HTTPS

Obiettivo Avere un dominio https con certificato valido da usare come endpoint pubblico per Homeassistant e per un WebHook per i bot telegram. Fase 1 Registrazione del dominio in un servizio di dynamic DNS come https://www.duckdns.org/   : Scegliere per quale sistema operativo installare il client che si occuperà dell'aggiornamento dell'ip: Seguire la semplice guida per la configurazione del processo cron: Fase 2 Creazione del certificato e installazione sul server. Di tutto questo si occuperà una applicazione che si chiama certbot. $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt install python-certbot-apache $ sudo certbot --apache -d ol3.duckdns.org -d www.ol3.duckdns.org Fase 3 Esporre il servizio https sulla rete pubblica. Aprire o reindirizzare la porta 443 verso l'host sul quale si è fatta la configurazione di certbot dal proprio router. Il certificato di certbot è valido per novanta giorn...

JHipster - Uso base

Cosa è JHipster è un "generatore di applicazioni" che fornisce tutto lo stack necessario ad implementare una applicazione web e/o a microservizi basata su Spring Boot e AngularJs. E' dotato di un marketplace di componenti già pronte: https://www.jhipster.tech/#modules E' dotato di uno strumento web per la modellazione dello schema E-R: https://start.jhipster.tech/jdl-studio/ Prerequisiti - Java 8  - Node.js (usare la versione LTS 64-bit) - NPM viene installato con Node.js ma va aggiornato      $ npm install -g npm - Per usare il JHipster Marketplace, installare Yeoman:       $ npm install -g yo Uso base Gli step, presi dal sito ufficiale sono questi: 1. Installare JHipster:       $ npm install -g generator-jhipster Nota: per installare una versione specifica del generator:   $ npm install -g generator-jhipster@6.0.5 2. Crea una nuova directory ed entra dentro questa:   $ mkdir ...