Che cos'è GIT?
Se tentate di sviluppare software con più di uno sviluppatore coinvolto, si incorre immediatamente in problemi. Durante il lavoro, gli sviluppatori cambiano qualcosa e tutti gli altri sviluppatori coinvolti in quel progetto hanno bisogno di aggiornarlo in qualche modo. Se le modifiche non erano quelle buone, ci dovrebbe essere anche una possibilità di tornare allo stato precedente o di ripristinare il codice in altri modi. I problemi diventano sempre più difficili quando gli sviluppatori sono sparsi in diverse zone in tutto il mondo.
Deposito centralizzato
La prima soluzione a questo problema è un deposito centralizzato. Questo archivio è gestito da una revisione/versione di sistema di controllo. I cambiamenti sono di solito identificati da un numero e sono chiamati revisioni. Per esempio, un set iniziale di file è revisione 1. Quando il primo cambiamento è fatto, il risultante set è revisione 2, e così via. Ogni revisione è associata ad una marcatura oraria e alla persona che effettua il cambiamento. La revisione può essere confrontata, ripristinata, e unita con alcuni tipi di file (Figura 1).
Figura 1: Flusso di lavoro centralizzato (Image https://github.com/schacon/whygitisbetter)
Commit
Ci sono diverse strategie per lavorare con diverse versioni di codice. Una parola importante in questo contesto è commit . Commits sono operazioni che vi spiegano la revisione del sistema di controllo, per fare una serie di cambiamenti che sono stati fatti e disponibili a tutti gli utenti. In base alla strategia del sistema, commit è "atomica" o "basata su file". Ci sono pro e contro per ogni strategia.
Unione
Se avete una grande squadra di sviluppatori è spesso il caso in cui tutti lavorano sullo stesso file di codice sorgente. Dopo un commit, il vecchio e il nuovo file devono essere uniti. Questo è facilmente possibile nei file di testo e quasi impossibile nei file media (immagini, suono, video).
Versioni
Molti progetti hanno diverse versioni del software come un ramo stabile e un ramo di sviluppo. Pertanto è necessario avere una sorta di funzione di applicazione nel sistema.
Revisione di controllo distribuito
Il deposito è ancora centrale (il benedetto deposito), ma è un modello distribuito dallo sviluppatore che gli permette di avere diverse versioni/settori sulla postazione di lavoro locale. Lo sviluppatore può decidere se i settori sono pubblici o locali. Questa funzione ha alcuni vantaggi.
E' possibile
- creare un settore, tirare fuori un'idea, trafficarci, poi unirlo al deposito centrale.
- avere diramazioni del software da diversi paesi.
Flusso di lavoro decentralizzato
A seconda della dimensione del progetto, ci può essere una persona (responsabile integrazione) che guida i cambiamenti degli sviluppatori nel deposito centrale (Figura 2).

Figura 2: Flusso di lavoro decentralizzato (Image https://github.com/schacon/whygitisbetter)
Flusso di lavoro Dittatore e Luogotenente
Se il progetto è più grande, come il caso di Joomla!, viene usato un'altro livello di gerarchia. I primi integratori (luogotenenti) sono in esecuzione al sottosistema di unione in tutti i cambiamenti. Successivamente il prossimo integratore (il capo oppure il dittatore), che è solo in grado di unire i cambiamenti al sottosistema, è responsabile del deposito centrale Figura 3).

Figura 3: Flusso di lavoro Dittatore e Luogotenente (Image https://github.com/schacon/whygitisbetter)
Software come GIT è chiamato sistema di controllo di revisione distribuito. La versione di controllo distribuito o versione di controllo decentralizzato tiene traccia delle revisioni software e permette a molti sviluppatori di lavorare su un dato progetto senza necessariamente essere connesso ad una rete comune.
Il nome e la storia
GIT è stato inizialmente disegnato e sviluppato da Linus Torvalds per lo sviluppo di Linux. Il nome git è un gergo Inglese Britannico per definire una persona stupida o sgradevole.
Sono un bastardo egoista, e nomino tutti i miei progetti come me stesso. Prima Linux, ora Git.
GitHub
GitHub è un servizio hosting internet basato per la revisione del sistema di controllo di Git, ed offre sia piani commerciali che account gratuiti per progetti open source. GitHub è una sorta di Facebook o Google+ per sviluppatori, lo amerete.
Joomla! e GitHub
Nel 2011 il CMS Joomla! e la piattaforma Joomla! si è trasferita su GitHub - https://github.com/joomla
Come iniziare?
Basta creare un utente su GitHub e scaricare il client GitHub per gestire i vostri settori locali. Nel vostro client GitHub locale dovete registrarvi e potete iniziare a creare i depositi. Provatelo - è facile e divertente (Figura 4)
Figura 4: Git Client (OSX)





0 comments
Post new comment