Branch, remote e barra laterale
Un'unica barra laterale, riordinabile e ricercabile, contiene branch, remote, tag, stash, worktree e sottomoduli. Ogni sezione può essere nascosta o riordinata (Impostazioni → Layout), e il filtro di ricerca vale per tutte. Quali sezioni e cartelle restano aperte o chiuse viene ricordato per repository, anche dopo un riavvio.
La barra laterale è una pila di riquadri, non una lista lunga. Una sezione aperta prende l'altezza lasciata da quelle chiuse, che restano sotto come intestazioni; aprine più di una e si dividono quell'altezza in parti uguali, ognuna con il proprio scroll. Una sezione con centinaia di tag scorre nel suo riquadro e le altre intestazioni restano dove sono, così niente da cliccare esce dallo schermo. Se ne apri più di quante ne stiano, tutti i riquadri si restringono insieme fino all'intestazione — la barra laterale stessa non scorre mai.
Solo Local parte aperta in un repository che non hai ancora sistemato; ogni altra sezione parte come intestazione. Una sezione con più di 300 riferimenti parte chiusa comunque. In un repository con migliaia di rami remoti mai cancellati sarebbero altrimenti tutti a schermo senza averli chiesti; aprila una volta e la scelta viene ricordata come le altre.

Branch
Crea, fai checkout, rinomina ed elimina — locali e remoti. Le righe dei branch mostrano:
- ↑avanti / ↓indietro rispetto al proprio upstream,
- badge di presenza per remote (quali remote hanno questo branch),
- un punto di rischio dopo una scansione del radar dei conflitti,
- un marcatore ⟳ quando il remote ha riscritto la storia.
I branch con / nel nome si raggruppano automaticamente in cartelle
richiudibili.
Un prefisso con un solo figlio resta una cartella — release/1.2.3 è release
con 1.2.3 dentro — così aggiungere release/1.2.4 dopo non ridisegna l’albero.
Una sequenza di cartelle con un solo figlio si comprime in un’intestazione
(dependabot/npm_and_yarn). Le intestazioni di cartella hanno il segno cartella;
la ref, il segno branch, remoto o tag.
Un clic destro sull'intestazione di una cartella agisce sull'intero gruppo:
Elimina tutti i branch sotto feature (4 branch) rimuove tutto il contenuto
dopo un'unica conferma che elenca esattamente quali branch se ne vanno — il
branch su cui ti trovi è escluso. Lo stesso menu esiste sulle cartelle dei
branch remoti, eliminando dal remote.
Il menu a tendina dei branch nella barra degli strumenti elenca i branch locali e remoti. Fai clic destro su un branch in quel menu per rinominare un branch locale, copiarne il nome, aprirlo in un nuovo worktree, fonderlo nel branch attivo o eliminarlo. I branch remoti omettono la rinomina e vengono eliminati dal loro remoto dopo una conferma. Gitcito omette il merge quando il riferimento selezionato è già contenuto nel branch attivo e disabilita la creazione del worktree quando quel branch è già estratto.


Le righe si selezionano in gruppo come i file: un clic con ⌘/Ctrl commuta una riga, un clic con Maiusc seleziona un intervallo, e Maiusc+↑/↓ estende la selezione dall'ultima riga cliccata. Un clic destro sulla selezione apre il menu di gruppo — Elimina 4 branch — che conferma con l'elenco completo. Gli stessi gesti funzionano su branch remoti, tag e stash.

Rinominare un branch
Un branch chiamato fix tre giorni fa è un branch che oggi nessuno sa
collocare. Rinominalo da dove hai notato il problema:
| Dove | Come |
|---|---|
| Barra laterale | Clic destro sul branch → Rinomina… |
| Menu a tendina dei branch nella toolbar | Clic destro sul branch → Rinomina… |
| Grafo dei commit | Clic destro sul badge del branch su un commit → Rinomina… |
| Palette dei comandi | ⌘/Ctrl+K → Rinomina il branch (agisce sul branch attivo) |
Una rinomina locale è git branch -m: immediata e annullabile con ⌘Z — la
voce di undo rimette il nome precedente. Rinominare il branch su cui ti trovi ti
lascia lì.
Se il branch traccia un remoto, il menu offre anche Rinomina (anche sul remoto)…, che rinomina in locale, pubblica il nuovo nome ed elimina quello vecchio a monte. Questo non è annullabile: il vecchio branch remoto non c'è più e chi lo aveva in checkout deve ripuntare. Su un badge del grafo compare solo se il branch traccia esattamente un remoto; con più remoti scegli il branch dalla barra laterale, così l'upstream è univoco.
Limiti: Gitcito non riscrive nulla che facesse riferimento al vecchio nome — le pull request aperte puntano ancora al branch con cui sono state aperte e le regole di CI basate su un pattern di branch smettono di corrispondere. Rinominare un branch in checkout in un altro worktree fallisce, e git lo dice.
Pull e push di un branch su cui non sei
Fai clic destro su un branch locale: le voci Pulla e Pusha agiscono su quel branch, non su quello in checkout — niente deviazioni per aggiornare tre branch. Vedi fetch, pull e push.
Branch appuntati
Metti una stella sui branch a cui torni di continuo — passa sopra la riga e clicca ★, oppure clic destro → Appunta il branch. Compaiono in un gruppo Appuntati in cima alla sezione Locali, ricordato per repository, pur restando al loro posto normale più in basso.
Fare checkout di un branch remoto
Doppio clic su un branch remoto per creare quello locale che lo traccia. Se esiste già un branch locale con quel nome ed è divergente, Gitcito ti chiede come riconciliarlo — rebase, merge o reset — e ti offre di farne prima un backup.

Quando il tuo branch locale è indietro
Viene portato avanti (fast-forward) alla punta del remoto durante il checkout. Un albero di lavoro sporco finisce in uno stash con nome e viene ripristinato dopo, così le modifiche locali non interrompono l'aggiornamento.
Quando il tuo branch locale è avanti
Se il branch locale è avanti e il remoto non ha nulla di nuovo, il checkout risponderebbe a una richiesta del branch remoto con il tuo lavoro non ancora pushato — quindi non viene cambiato nulla finché non dici quale lato intendevi:
| Scelta | Cosa succede |
|---|---|
| Passa al locale | Passa al branch locale, commit intatti. Quello che ogni altro client fa in silenzio. |
| Reimposta (soft) | Riporta il branch alla punta del remoto; le modifiche dei commit restano in stage, pronte per un nuovo commit. |
| Reimposta (mixed) | Stesso spostamento, modifiche lasciate fuori dallo stage nell'albero di lavoro. |
| Reimposta (hard) | Scarta i commit e le loro modifiche. |

Lascia spuntato Crea prima un branch di backup e la punta locale viene salvata
come backup/<branch>-<timestamp> prima di ogni spostamento: anche un reset hard
resta a un checkout di distanza dall'essere annullato. Il reset entra anche nello
stack di annullamento (⌘Z), ma solo finché non chiudi il repository — il branch di
backup dura più a lungo.
Limiti: il dialogo confronta il branch solo con il riferimento di tracking appena recuperato, quindi un remoto che ha rifiutato il fetch (offline, credenziali errate) viene confrontato con l'ultima punta nota. Non dice se i tuoi commit sono buoni: solo che esistono qui e non lì.
Remote
La sezione Remote della barra laterale è dove si aggiungono, modificano, recuperano e rimuovono i remote. Fetch, pull o push su un repository che non ne ha nessuno apre lo stesso dialogo Aggiungi remoto — incolla un URL o crea il repo sull'host — invece di non fare nulla. Vedi fetch, pull e push.
Vedi anche: Merge e rebase · Worktree