-
1. Per Iniziare
- 1.1 Il Controllo di Versione
- 1.2 Una Breve Storia di Git
- 1.3 Basi di Git
- 1.4 Installare Git
- 1.5 Prima Configurazione di Git
- 1.6 Ottenere Aiuto
- 1.7 Riassunto
-
2. Basi di Git
-
3. Diramazioni in Git
- 3.1 Cos'è un Ramo
- 3.2 Basi di Diramazione e Fusione
- 3.3 Amministrazione dei Rami
- 3.4 Flusso di Lavoro con le Ramificazioni
- 3.5 Rami Remoti
- 3.6 Rifondazione
- 3.7 Riassunto
-
4. Git sul Server
- 4.1 I Protocolli
- 4.2 Ottenere Git su di un Server
- 4.3 Generare la Propria Chiave Pubblica SSH
- 4.4 Configurare il Server
- 4.5 Accesso Pubblico
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Demone Git
- 4.10 Hosted Git
- 4.11 Riassunto
-
5. Git distribuito
- 5.1 Workflows distribuiti
- 5.2 Contribuire ad un Progetto
- 5.3 Mantenere un Progetto
- 5.4 Summary
-
6. Git Tools
-
7. Customizing Git
- 7.1 Configurazione di Git
- 7.2 Attributi di Git
- 7.3 Git Hooks
-
8. Git e altri sistemi
- 8.1 Git e Subversion
-
9. Git Internals
- 9.1 Plumbing and Porcelain
- 9.2 Gli oggetti di Git
- 9.3 I riferimenti di Git
- 9.4 Packfiles
- 9.5 The Refspec
- 9.6 Transfer Protocols
- 9.7 Maintenance and Data Recovery
- 9.8 Summary
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.