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...

Wemos D1 mini ESP8266 - Aggiornamenti OTA

Wemos D1 mini - Aggiornamenti OTA Cosa è Può risultare scomodo dover collegare con un cavo usb un ESP8266 e derivati (come in questo caso un Wemos D1 mini) ad un pc per un semplice aggiornamento software.  OTA sta per "Over The Air". Con questa tecnologia si ha la possibilità di modificare il firmware di questi microcontrollori mediante la wi-fi.  Come funziona Per ottenere questa funzionalità ci si è inventato un meccanismo molto semplice: il nostro microcontrollore, dotato della capacità di aggiornamenti OTA, ha in carico un firmware che all'avvio non fa altro che, usando la libreria ArduinoOTA, collegarsi alla wi-fi (della quale avremo fornito SSID e Password) e mediante il " Multicast DNS " dichiara la sua presenza sulla WI-FI LAN, l' Ide di Arduino rileva questa presenza e ci fornisce il supporto alla comunicazione mediante wi-fi (la porta di rete rilevata prenderà il nome del modello e l'ultima parte del suo mac-address per identificarlo, se non r...