Repository e cronologia

Il grafo dei commit

Branch, merge e merge a piovra disegnati come si deve, in chiaro o in scuro. Il rendering è a finestra, quindi un repository con centomila commit scorre come uno che ne ha cento.

Grafo dei commit, tema chiaro Grafo dei commit, tema scuro

Muoversi

  • ↑ ↓ (oppure j k) spostano la selezione.
  • ⌘/Ctrl+clic aggiunge o toglie un commit da una selezione multipla; ⇧+clic prende un intervallo. Con più commit selezionati, il clic destro permette di fare cherry-pick sul branch corrente, fare squash di una sequenza contigua, esportare un'unica patch combinata o copiare i loro SHA.
  • I commit arrivati con il tuo ultimo fetch o pull sono contrassegnati come nuovi. Quelli non ancora entrati nel branch attivo restano leggermente traslucidi finché un pull non li integra.
  • Clic destro su un commit per Correggi, Annulla, Reset al commit… e Apri su GitHub, oltre a checkout, cherry-pick, revert, branch, tag e copia. Le azioni non sicure restano visibili e si disabilitano.

Fargli mostrare quello che vuoi

  • Il focus del grafo decide quanta storia viene disegnata — Impostazioni → Temi → Grafo, o il menu dell'ingranaggio nell'intestazione del grafo. Tutto disegna ogni cosa; Cronologia lineare (first-parent) lascia solo il tronco; Nascondi i rami già uniti tiene il tronco più i rami ancora aperti; Modalità solo tiene il tuo ramo, i rami preferiti e il ramo predefinito.

    Filtra soltanto ciò che il log ha già caricato. Nascondi i rami già uniti si fida della risposta di git a «già contenuto nel ramo corrente», quindi cambiare ramo cambia ciò che sparisce — e tiene ogni commit ancora puntato da un tag o da un riferimento che non riconosce, cioè proprio quello che lascia un ramo cancellato. Cronologia lineare e Modalità solo sono più drastiche: un tag o uno stash su un commit che nascondono sparisce con lui.

  • Filtra per percorso: clic destro su un file o una cartella → Filtra il grafo per questo percorso, e restano accesi solo i commit che l'hanno toccato.

Il grafo filtrato su un solo percorso

  • Colonne: mostra, nascondi, ridimensiona e riordina le colonne branch, messaggio, autore, data, SHA, firma e deploy.
  • Stile: Impostazioni → Temi → Grafo — palette delle corsie (8 integrate, personalizzata o generata dall'AI), stile degli angoli, densità delle righe e spessore delle linee, con un mini-grafo di anteprima dal vivo.

Le impostazioni di stile del grafo con anteprima dal vivo

Dove stanno gli stash

Uno stash è disegnato come una riga propria, appeso al commit da cui è stato preso su uno sperone tratteggiato così da non spostare il tronco. Va nella riga subito sopra quel commit padre, non nello slot che gli varrebbe la sua data.

Il suo segno è una scatola d'archivio in una cornice a puntini — lo stesso simbolo d'archivio della lista stash, della palette comandi e dell'intestazione dei dettagli, perché il grafo chiami uno stash come il resto dell'app. La cornice a puntini è ciò che lo separa da un commit: seduto una riga sopra il padre, è la forma a dover dire «questo non fa parte del branch».

Uno stash è quasi sempre più nuovo del commit su cui siede, quindi l'ordine per data lo farebbe salire tra commit che non c'entrano e allungherebbe il cavo a metà grafo. Il padre è l'unica riga a cui uno stash si relaziona davvero, quindi resta accanto.

Il limite: uno stash il cui commit padre non è nella finestra caricata — potato, o oltre la fine del log — non ha un'ancora, e torna all'ordine per data finché il padre non si carica. Cronologia lineare e Modalità solo lasciano cadere uno stash il cui padre lasciano cadere, come detto sopra.

Dettagli di un commit

Selezionando un commit vedi i suoi file modificati (ad albero o piatti), l'autore, lo SHA, i coautori e la sua firma. L'intestazione sopra l'elenco dei file spezza il conteggio per tipo, con gli stessi colori dei glifi sulle righe. Passa il cursore per il totale. I riferimenti #123 e le @menzioni diventano automaticamente link al tuo host.

L'elenco dei file si seleziona in gruppo con i gesti consueti (clic ⌘/Ctrl, clic ⇧, ⇧+↑/↓). Clic destro sulla selezione → Ripristina {n} file nell'albero di lavoro riprende quei file esattamente come li aveva questo commit: dopo un'unica conferma sovrascrive le copie di lavoro, senza toccare né HEAD né l'indice.

Una passeggiata fra i dettagli dei commit

Vedi anche: Blame e cronologia del file · Ricerca · Macchina del tempo

Migliora questa traduzione su GitHub