+++ title = "Sincronizzazione" date = 2026-11-05T00:00:00Z description = "Come HardenedPass sincronizza l'archivio con git: quando vengono registrate le modifiche, come fare pull e push, come uscire da un conflitto." weight = 70 draft = true +++ Ogni modifica che fai nell'app, come una nuova voce, una correzione o un'eliminazione, viene subito registrata con un commit git sul telefono. **Al server non arriva nulla finché non sincronizzi.** Fino ad allora, la modifica esiste solo su questo telefono. ## Sincronizza Trascina verso il basso l'elenco per sincronizzare. Puoi usare anche i tre puntini nella barra di ricerca: {{< image src="menu.png" alt="Il menu dell'elenco con Sincronizza repository, Pull dal remote, Push sul remote e Impostazioni." class="max-w-sm mx-auto rounded-lg border border-border" />}} - **Sincronizza repository** scarica le modifiche del server e invia le tue. - **Pull dal remote** scarica soltanto. - **Push sul remote** invia soltanto. Quasi sempre vuoi Sincronizza. Per disattivare il gesto, usa **Disattiva la sincronizzazione trascinando** nelle [Impostazioni]({{< relref "/hardenedpass/reference/settings" >}}). ## Quando due dispositivi cambiano la stessa cosa Se modifichi la stessa voce sul telefono e su un computer prima di sincronizzare, git non può scegliere un vincitore. L'app usa di default un rebase (**Rebase al pull**), e la sincronizzazione si ferma con un errore che dice che il pull non è riuscito e che sei in detached HEAD. Il tuo lavoro non è perso. Apri **Impostazioni**, poi **Configurazione Git locale e utilità**. Hai due vie d'uscita: ### Tieni le tue modifiche **Interrompi il rebase ed esegui il push su un nuovo branch** annulla il rebase e invia il tuo lavoro locale su un nuovo branch del server. L'app te ne dice il nome. Poi, su un computer: ```bash pass git fetch origin pass git merge origin/NOME-DEL-BRANCH ``` Git si ferma sulle voci in conflitto. I file cifrati non si possono unire riga per riga, quindi tieni una versione di ciascuno, completa il merge e rimandalo con `pass git push`. Sul telefono, chiudi con l'hard reset qui sotto, così il telefono torna uguale al server. ### Butta via le tue modifiche **Hard reset al remote branch** chiede il nome del branch, poi rende il telefono una copia esatta di quel branch. {{< callout type="warning" >}} Un hard reset scarta i commit e le modifiche locali che non sono su quel remote branch. Usalo solo quando sei sicuro, o dopo aver messo al sicuro il tuo lavoro con l'opzione qui sopra. {{< /callout >}} ## Altri strumenti La stessa schermata imposta il nome e l'email usati per i commit, mostra la cronologia con **Mostra registro dei commit** e offre **Esegui la garbage collection** per fare ordine nel repository locale.