GIT é il CoreBase con funzionalità minime, GITHUB é una estensione

Nella cassetta degli attrezzi di un aspirante web developer non deve mancare nalla TOOLBOX la conoscenza di strumenti come GIT e GITHUB. Ma che cosa sono e perché si prova orrore a questi TOOLS quando si sente parlare di locale e remoto, COMMITS e BRANCES, PUSH e IDE, DEPLOY e BUILD e chi più ne ha più ne metta? Serve ordine per rimettere in piedi i cocci e anche il KINTSUGI antica arte giapponese di riparazione degli oggetti che hanno subito una rottura con una lacca (urushi) per saldarne i frammenti e la successiva copertura e messa in rilievo delle crepe con polvere d’oro. Quindi prima domanda sostanziale del neofita che si avvicina per la prima volta al problema della conoscenza su GIT e GITHUB: ma queste due formule semantiche sono la stessa cosa? Risponde il KINTSUGI: NO, SONO DUE COSE DIVERSE, GIT è stato creato come TOOL per gestire il KERNEL di LINUX nel 2005 da Torwald stesso ed é da intendersi come un insieme MINIMO di funzionalità che servono a definire i controlli di versione. OK, ma che cosa é un controllo di versione?

Risponde il saggio Zen: è quella situazione che con una metafora puoi spiegare con una grande libro da te creato che ha venduto milioni di copie in tutto il mondo. Prima di arrivare al testo definitivo hai dovuto limare e rilimare, sgrossare e rifinire, dare in pasto a editor e controeditor i tuoi contenuti per arrivare alla versione definitiva del tuo romanzo (software nella metafora). Quindi del tuo documento word avrai la versione uno, la versione due migliorata, la versione 3 ulteriormente sgrossata da un italiano imperfetto e quella 4 definitiva commerciale dove ciascun file avrà la sua data e la descrizione dei cambiamenti apportati. Nel software è la stessa cosa, ogni cosa va gestita e controllata soprattutto quando si lavora in TEAM e servono sia degli allineamenti e dei MERGE per evitare di lavorare su OLD File, logica quindi la necessità di monitorare costantemente il lavoro svolto per allinearle alle esigenze collettive.

A questo punto il saggio Zen specifica anche che con GIT si lavora prevalentemente da riga di comando e come si sa questa informazione é esplosiva in quanto il mondo si divide alla Sergio Leone in due, quelli che hanno la pistola carica e chi scava, ossia chi ama il Common Line Interface i comandi a riga di comando e chi invece scava e li odia e ha bisogno di un IDE, una interfaccia grafica come studio android, per gestire il tutto. Ora fortunatamente anche per chi scava ci sono numerose IDE che si possono usare per rendere più user-friendly certe operazioni che a prima vista potrebbero sembrare molto complicate a causa di inesperienza. E’ chiaro che ci sono funzionalità minime da carpire per esempio in quelle situazioni dove si lavora in locale ma anche un mondo GIT complesso quando si lavora in TEAM sotto la superficie dell’ esseniziale da far proprio, un GIT semplice con funzionalità base da assimilare e un GIT complesso per la gestione di Gruppo, locale e remoto sono due universi paralleli da esplorare. A questo punto il saggio Zen viene incalzato con tutta una serie di domande del tipo: ma come faccio a creare e modificare e visualizzare una COMMITS? E come elimino o modifico qualcosa che ha bisogno di essere revisionato con l’ultima versione definitiva togliendo le COMMITS che non servono al mio progetto implementate magari nel mesozoico? Insomma si fa presto a dire GIT senza contare tutto l’insieme di servizi aggiuntivi che il CoreBase non può offrire e che fa entrare in gioco GITHUB che non altro che un pacchetto di funzionalità aggiuntive per risolvere problemi avanzati e offrire servizi sempre più performanti. GITHUB non é l’unico a offire questo servizio, la battaglia si combatte a colpi di servizi aggiuntivi offerti al pubblico. A questo punto vediamo quali sono queste aziende e i relativi link di riferimento per i servizi on line GITBases che aggirano il problema delle funzionalità minime offerte da GIT, il software da riga di comando che gestisce gli SNAPSHOOT ossia le COMMITS

https://github.com/ a pagamento per i privati
https://bitbucket.org/product spazio gratuito anche per privati & Trello incluso
https://about.gitlab.com/ continuous integration, costruzione di build automatizzate

Per le User Interface CLI possiamo scaricare SourceTree oppure GITHUB Desktop o anche quello a pagamento Tower. Per scaricare SourceTree andare su https://bitbucket.org/ dove esiste un link per arrivare a https://www.sourcetreeapp.com/ . Invece per GITHUB Desktop vado su https://github.com/ e in fondo nel footer trovo https://desktop.github.com/ o anche andare per cercare alternative alle GUI qui proposte su https://git-scm.com/downloads/guis e leggere il menù. Per indagare su https://trello.com/it scopriamo che si tratta di un software che aiuta il lavoro condiviso per gruppi sparsi in tutto il pianeta. Invece una COMMIT ha un suo ID, un suo nome, una sua descrizione e data che lo contraddistingue e la traduzione ci indica FARE ossia COMMETTERE, eseguire qualcosa di fisico che ha delle coordinate come evento compiuto. Mentre quando si sente parlare di Deploy nel mondo dei controlli di versione si fa riferimento alla distribuzione. E per brunch? Il termine inglese brunch, una parola risultato della fusione tra breakfast e lunch, indica un pasto consistente in una commistione tra prima e seconda colazione anglosassone, consumato solitamente a metà o tardo mattino.

flussi di lavoro

A questo punto come primo approccio la domanda é: tutto chiaro? Mai visto tanti ACRONIMI in un sol colpo eh?! E siamo solo all’ inizio! Per esempio in uno dei prossimi appuntamenti esploreremo il concetto di REPOSITORY, deposito o magazzino o contenitore!