Ciao, e benvenuto nella terza puntata della quattordicesima stagione. Nella scorsa puntata abbiamo capito che Git conserva il lavoro come una serie di istantanee complete del progetto. Ma resta una domanda: come si prepara e si scatta una di queste istantanee? Oggi rispondiamo, e nel farlo chiariamo uno dei punti che confonde di più i principianti, quello che li fa inciampare fin dal primo giorno: i tre luoghi, o stati, in cui il tuo lavoro può trovarsi in Git. Capirli scioglie un nodo enorme.
Partiamo elencando questi tre luoghi, perché avere la mappa chiara aiuta tantissimo. Il primo è la tua cartella di lavoro: i file veri e propri sul tuo computer, quelli che modifichi mentre lavori, il tuo tavolo di lavoro disordinato dove crei e cambi le cose. Il secondo è una specie di sala d'attesa, un'area intermedia dove prepari la prossima istantanea prima di scattarla. Il terzo è il deposito, l'archivio permanente dove le istantanee, una volta scattate, vengono conservate per sempre. Cartella di lavoro, sala d'attesa, deposito: tre luoghi distinti, e il tuo lavoro viaggia dall'uno all'altro.
Il primo luogo è facile: è semplicemente la cartella con i tuoi file, dove lavori normalmente. Modifichi un file, ne crei uno nuovo, ne cancelli un altro: tutto questo accade nella tua cartella di lavoro, ed è la parte che già conosci. È il presente vivo e mutevole del tuo progetto, il tavolo su cui stai effettivamente lavorando in questo momento. Git, per ora, si limita a osservare questa cartella e ad accorgersi di cosa è cambiato rispetto all'ultima istantanea, ma non fa ancora nulla: aspetta le tue istruzioni. Fin qui, niente di misterioso.
Il terzo luogo è anche abbastanza intuitivo: è il deposito, dove finiscono le istantanee scattate. Quando decidi che il tuo lavoro è pronto per essere immortalato in una fotografia, quella fotografia va nel deposito, e lì resta, al sicuro, per sempre, come parte permanente della storia del progetto. Il deposito è l'album ufficiale delle istantanee di cui parlavamo, il registro definitivo di tutti i momenti salvati. Una volta che una fotografia è nel deposito, fa parte della storia e non si perde più. È la memoria a lungo termine del progetto.
Ed è il secondo luogo, quello in mezzo, che confonde tutti, quindi dedichiamogli il cuore della puntata: la sala d'attesa, l'area intermedia. Perché diavolo esiste? Perché non passare direttamente dalla cartella di lavoro al deposito? La risposta è che questa sala d'attesa serve a comporre la prossima fotografia con cura, scegliendo esattamente cosa includere. Non sempre vuoi fotografare tutto ciò che hai cambiato: magari hai toccato cinque file, ma vuoi che questa istantanea ne racconti solo tre, che vanno insieme, e lasciare gli altri due per una fotografia successiva. La sala d'attesa è il luogo dove selezioni e disponi ciò che entrerà nella prossima foto.
Rendiamo questo concreto con un'immagine, perché è la chiave per capire. Immagina di dover scattare una foto di gruppo. La cartella di lavoro è la stanza piena di gente che chiacchiera, tutti i tuoi cambiamenti sparsi. Il deposito è l'album dove finiranno le foto ufficiali. E la sala d'attesa è il set fotografico, dove fai accomodare, uno per uno, solo le persone che vuoi in questa foto specifica, sistemandole come desideri prima di scattare. Chiami sul set solo chi deve esserci, controlli che sia tutto a posto, e poi scatti. Chi non hai chiamato resta fuori, per un'altra foto. La sala d'attesa ti dà il controllo preciso su cosa immortalare.
Quindi il flusso completo, ora, dovrebbe avere senso, e voglio che lo veda chiaramente perché scioglie il nodo dei comandi. Lavori nella cartella, cambiando i file. Quando sei pronto, sposti nella sala d'attesa esattamente i cambiamenti che vuoi includere nella prossima istantanea, componendo la foto. E infine, quando la composizione è quella giusta, scatti: la fotografia di ciò che c'è nella sala d'attesa viene salvata nel deposito, diventando una nuova istantanea permanente. Sono due passi distinti e deliberati: prima prepari la foto scegliendo cosa includere, poi la scatti. Ecco perché in Git salvare avviene in due mosse, non in una: la prima compone, la seconda immortala.
Voglio sottolineare perché questa separazione in due passi è una cosa buona, non una complicazione inutile. Ti dà un controllo fine e prezioso su come racconti la storia del tuo progetto. Puoi fare istantanee pulite e mirate, ciascuna che cattura un cambiamento coerente e sensato, invece di foto confuse che mescolano cose scollegate. Riprendo un tema della prima stagione, quello di lavorare pensando a chi verrà dopo: istantanee ben composte rendono la storia del progetto leggibile e comprensibile per te e per i tuoi colleghi, in futuro. La sala d'attesa è lo strumento che ti permette questa cura, questa capacità di comporre una storia ordinata invece di un guazzabuglio.
Per oggi ci fermiamo qui. In Git il tuo lavoro vive in tre luoghi: la cartella di lavoro, dove modifichi i file; la sala d'attesa, dove componi la prossima istantanea scegliendo cosa includere; e il deposito, dove le istantanee scattate restano per sempre. La sala d'attesa, che confonde tutti, è in realtà un set fotografico che ti dà il controllo preciso su cosa immortalare, ed è il motivo per cui salvare avviene in due passi: prima componi, poi scatti. Questa cura permette di raccontare la storia del progetto in modo pulito e leggibile. Nella prossima puntata guardiamo dentro una di queste fotografie: il commit. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.