Chapter 9
Git Internals
Forse siete saltati a questo capitolo da uno precedente, o dopo aver letto il resto del libro — in ogni caso, qui approfondirete il funzionamento interno e l’implementazione di Git. Ho pensato che queste informazioni fossero fondamentali per capire quanto Git fosse utile e potente, ma altri hanno ribattuto come questo potesse essere complesso e non necessariamente utile per i principianti. Per questo motivo ho deciso di includere queste informazioni nell’ultimo capitolo del libro di modo che le possiate leggere nella fase dell’apprendimento che ritenete più opportuna. Lascio voi la scelta.
Dato che ora siete qui, possiamo partire. Per prima cosa, se non è ancora chiaro, Git è fondamentalmente un filesystem content-addressable sopra al quale si appoggia una interfaccia utente VCS. Tra breve imparerete meglio cosa significhi.
Nelle prime versioni di Git (principalmente pre 1.5) l’interfaccia utente era molto più complessa perchè veniva privilegiato il filesystem rispetto ad avere un VCS pulito. Negli ultimi anni l’interfaccia utente è stata rifinita fino a diventare chiara e facile da usare come gli altri sistemi disponibli; spesso però, il fatto che l’interfaccia di Git sia complessa e difficile da capire è rimasto come pregiudizio.
Il filesystem content-addressable è veramente formidabile, quindi in questo capitolo partirò parlando di quello; di seguito imparerete il meccanismo di trasporto e i task per il mantenimento del repository con i quali potreste aver a che fare.