Git vive sul tuo computer: salvi le tue versioni (commit) anche da solo, senza GitHub. Quando il progetto è pronto per essere condiviso — o solo per avere un backup — lo mandi su GitHub (push). E lì, in più persone, si lavora su capitoli separati: branch, revisione (Pull Request), merge.
Sempre lo stesso principio: un grafico che cresce, un elemento alla volta. Tre parti: 1) sul tuo computer · 2) condividere · 3) lavorare in due.
Il progetto (il tuo libro) vive sul tuo computer. Git sta qui, in locale: GitHub non serve ancora.
Salvi una versione: è un commit. Come salvare «capitolo_v1» in Word — una foto di tutto il progetto in quel momento. Tutto sul tuo computer.
Un altro commit: v2. La storia cresce sul tuo computer. Fin qui, da solo, GitHub non serve: git funziona benissimo così.
Vuoi condividere il progetto (o solo tenerne un backup)? Lo mandi su GitHub: è il push. La tua storia sale, e ora c’è una copia condivisa in alto.
Mentre lavoravi, un collega ha fatto un commit e l’ha spinto su GitHub (quello blu). Ora la copia condivisa è avanti di un commit rispetto alla tua: tu non ce l’hai ancora.
Porti giù il commit del collega (blu): è il pull. Ora la tua copia e GitHub combaciano di nuovo — parti sempre dall’ultima versione di tutti.
Questa è la storia del progetto: la tua, più il commit del collega (blu). Dopo il push e il pull, è la stessa sul tuo computer e su GitHub. Ci lavorate in più: come per un libro, si scrive su capitoli diversi senza pestarsi i piedi — a patto di non toccare lo stesso capitolo insieme.
Per lavorare senza disturbare gli altri, apri un branch: una linea tutta tua, dove porti avanti il tuo capitolo in sicurezza. Il branch nasce sul tuo computer; quando è pronto lo mandi su GitHub per la revisione.
Tre cose concrete che un branch vi dà:
L’analogia. Caricare un file con lo stesso nome in una cartella condivisa sovrascrive l’altro, e un lavoro sparisce senza avvisare. Il branch è l’opposto: fotocopie separate che confrontate in chiaro — senza confusione — decidendo con calma quale versione tenere.
Quando il capitolo è pronto, non lo unisci di nascosto: apri una Pull Request. Qualcuno rilegge e approva — lo stesso cancello dell’approvazione del piano, da L1.
Approvato, il capitolo rientra nel libro condiviso: è il merge. Due linee che tornano una — i «due genitori».